Eu tenho um script bash que faz algum trabalho, o que é feito bastante rápido. Ele deve então ficar ocioso até que o usuário decida terminá-lo, seguido por algum código de limpeza.
É por isso que eu prendo o CTRL+c evento com o seguinte código:
control_c()
{
cleanup
exit 0
}
trap control_c SIGINT
Mas como meu script é feito rapidamente eu nunca termino propositalmente, então nunca chega a interceptar o CTRL + c e execute o código de limpeza.
Eu percebi que eu poderia implementar um interminável do while
loop, com sleep
no final do script, mas eu suponho que há uma solução melhor.
Como posso ocioso um script no bash, esperando o CTRL+c evento?
Respostas:
2 para resposta № 1Assumindo que você está conectado a um TTY:
# idle waiting for abort from user
read -r -d "" _ </dev/tty