É possível matar um loop no bash sem matar a instância do bash executando o loop?

5

Suponha que eu execute (em um shell bash interativo) um loop que gera vários processos em sequência, como os seguintes.

for i in 'seq 15 42'; do if [ -f F$i.flv.mp3 ]; then play F$i.flv.mp3; fi; done 

Se eu matar o processo atual com Control-C , ele irá para o próximo processo no loop e eu tenho que matar os processos iniciados por uma iteração do loop separadamente.

Sem matar meu shell interativo, posso parar o loop de gerar ou mais processos em sequência?

    
por merlin2011 26.04.2013 / 00:46

2 respostas

4

Nos meus testes, Control-C quebra o loop, mas se não, eu faria um Control-Z para parar o trabalho, e então kill %1 para matar o trabalho todo.

    
por 26.04.2013 / 06:31
0

Em geral não, mas sou conhecido por adicionar isso a um loop de longa duração:

if test -f /tmp/please-stop; then break; fi
    
por 17.11.2016 / 18:59