bash - interrompe um comando dentro de um loop mas continua o loop

0

Estou executando um loop assim:

for ip in 10.0.0.1 10.0.0.2 10.0.0.3; do traceroute $ip; done

Eu quero ser capaz de matar o traceroute atual quando ele ficar chato (e antes de seu máximo de 30-hop), e passar para o próximo. Mas quando pressiono Ctrl + c , ele mata todo o loop for .

Eu acho que o que eu preciso é uma maneira de terminar o atual traceroute ou enviar o loop a continue .

Esta questão e este está fazendo uma coisa semelhante, mas em situações mais complicadas. Existe uma maneira razoável de fazer isso quando apenas executando coisas a partir do prompt?

    
por P1h3r1e3d13 26.06.2018 / 02:22

1 resposta

2

Use a armadilha :

trap "echo ctr+c pressed" INT TERM;for ip in 10.0.0.1 10.0.0.2 10.0.0.3; do traceroute $ip; done
    
por 26.06.2018 / 02:32

Tags