É 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 o seguinte.

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 Control-C, ele passará 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?

Respostas:


4

Nos meus testes, Control-Co loop é interrompido, mas, se não acontecesse, eu faria um Control-Zpara interromper o trabalho e depois kill %1matar o trabalho inteiro.


0

Em geral, não, mas sou conhecido por adicionar isso a um longo ciclo de execução:

if test -f /tmp/please-stop; then break; fi
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.