Como sair de um loop bash pela entrada do teclado?

4

Eu tenho um bash lopp como

#!/bin/bash
for (( c=0; c<=1000000; c++ ))
do  
SOME STUFF HERE
done

Eu interrompo o loop longo por uma entrada de teclado como Ctrl+C mas Ctrl+C simplesmente termina o script. Eu estou procurando uma alternativa para continuar o ciclo atual e quebrar o ciclo depois de terminar a execução STUFF no ciclo atual.

    
por Googlebot 28.04.2017 / 00:25

1 resposta

4

Uma maneira é trap do sinal Control-C e break do loop , como em:

#!/bin/bash
trap break INT
for (( c=0; c<=1000000; c++ ))
do  
SOME STUFF HERE
done
echo "I have broken out of the interminably long for loop"
trap - INT
sleep 1
echo "END."
    
por 28.04.2017 / 00:38