Como forçar a saída de um loop infinito em um script bash graciosamente

1

Eu escrevi um script bash que registra códigos de tecla em um arquivo simples. Eu coloquei o código em um loop while porque eu quero logar continuamente. Mas se eu executar o script bash no terminal, o cursor continua piscando, sugerindo que o arquivo está realmente preso em um loop infinito. Agora eu quero ser capaz de sair desse loop graciosamente. Eu não sei como. Ctrl + C não funciona. Acabei de fechar o terminal e forçar a sair do processo. Como faço para sair do loop while e quando o usuário se sente como sair do programa?

    
por Vivek Pradhan 21.01.2013 / 18:51

2 respostas

3

Se você pegar um cursor piscando, você provavelmente não está realmente em um loop. Você provavelmente está esperando uma entrada. Experimente Ctrl + D. Se isso não funcionar, abra um novo terminal e ps aux | grep command , em que command é o nome do script que você escreveu e depois mata o pid que é retornado.

    
por coteyr 21.01.2013 / 19:04
0

Apenas uma ideia. E se você ler o valor de um arquivo e, em vez disso, um loop infinito, testar o valor? Algo parecido com isto:

while [ "'cat mytestfile'" = 0 ]; do
    //your stuff here
done

E você só echo 1 > mytestfile , se você quiser parar o loop.

    
por Aba 13.04.2016 / 13:38