Qual é a melhor maneira de ter saída de múltiplos comandos em um console?

0

Estou trabalhando para melhorar meu ambiente de programação e agora preciso ter vários comandos de saída (coffeescript / sass compilation e unit tests) em um console. Isso pode ser conseguir comandos de concatenação com & :

karma start & coffee -o js/app -cw coffee/ & sass --watch sass/:css/

mas quando eu gostaria de terminar o trabalho e fechá-los e pressionar ctrl+c eles ainda funcionarão em segundo plano e eu tenho que matar cada um deles manualmente. Como posso consertar isso e ter a capacidade de fechar todos esses comandos de uma só vez?

Atualmente, só posso pensar em fazer uma tarefa grunhido que executará vários comandos, mas usar o grunhido parece ser um exagero para tal tarefa. Existem maneiras mais fáceis / alternativas?

    
por SET 30.09.2015 / 06:12

4 respostas

1

(Nota: Você só pode exibir um programa / tarefa de uma só vez. Além disso, alguns programas como apt-get não funcionam corretamente dessa maneira).

Primeiro, adicione um símbolo & ao final da linha, para que a linha fique assim:

karma start & coffee -o js/app -cw coffee/ & sass --watch sass/:css/ &

Isso também coloca o último programa em segundo plano.

Em seguida, digite jobs para listar os programas. Você terá uma saída que lembra um pouco isso:

karma start [1]
coffee -o js/app -cw coffee/ [2]
sass --watch sass/:css/ [3]

Para trazer um programa para o primeiro plano, digite fg seguido pelo número do programa. Por exemplo, para trazer karma start para o primeiro plano, digite fg 1 . Para voltar a colocá-lo em segundo plano, pressione Ctrl + Z . Repita conforme necessário.

    
por Oxylibrium 30.09.2015 / 06:59
1

Apenas mate o terminal ... Isso eliminará todos os comandos em execução, a menos que você tome precauções especiais, como dtach ...

    
por Fabby 30.09.2015 / 18:29
0

Use job para listar seu comando, você terá algo parecido com isto

karma start [1]
coffee -o js/app -cw coffee/ [2]

Use fg 1 ou fg 2 para trazer de volta trabalhos em primeiro plano.

    
por Archemar 30.09.2015 / 06:45
0

& não concatena comandos. Começa um por um no fundo. Se não for necessário iniciar os comandos em segundo plano, basta usar ; em vez de & .

    
por A.B. 30.09.2015 / 06:55