Forçosamente quebra um loop for em sh

7

Se eu executar um loop for na linha de comando em sh e pressionar control-C, ele normalmente cancelará o processo em execução, portanto, preciso manter ^ C até que o próprio shell o capture e quebre o loop. Existe uma maneira de interromper o processo atual e o loop imediatamente?

    
por ZimmyDubZongyZongDubby 11.09.2009 / 15:16

1 resposta

11

A maneira mais fácil que eu sei é suspender o trabalho de primeiro plano ( ^Z ), depois matá-lo usando o ID do trabalho ( kill %<JOB_ID> ).

Exemplo:

[me@host]$ while [ : ]; do less /etc/motd; done   # Ctrl-C can't kill this

Depois de uma Ctrl + z

[1]+  Stopped                 less /etc/motd

[me@host]$ kill %1
[me@host]$

O número entre parênteses ( [1] ) no início da mensagem de suspensão fornece o ID do trabalho.

Você também pode listar ids de jobs suspensos usando o comando jobs .

    
por 11.09.2009 / 16:13

Tags