execute o comando antes que o script saia

execute o comando antes que o script saia

Tenho algum hardware que estou testando com um script bash.

#!/bin/bash
tshwctl --setdio=65
for i in $(seq 0 1000)
do
 ./adc1
sleep 1
done
tshwctl --clrdio=65

Se eu pressionar Ctrl+C antes de terminar o loop, o pino 65 não será desarmado. (Posso desativá-lo mais tarde, com certeza) existe uma maneira de executar um processo após pressionar Ctrl+C? como em: existe uma maneira de o script ser executado tshwctl --clsdio=65 antes de sair do script quando ctrl + C é pressionado?

Responder1

Você pode usar depois do shebang #!/bin/bash:

trap 'tshwctl --clsdio=65 &>/dev/null' 1 2 3 15

ou você pode remover --clsdiodo script inferior e usar:

trap 'tshwctl --clsdio=65 &>/dev/null' EXIT

para executar o comando em todos EXITos casos de uso

http://mywiki.wooledge.org/SignalTrap

informação relacionada