выполнить команду до завершения скрипта

выполнить команду до завершения скрипта

У меня есть оборудование, которое я тестирую с помощью bash-скрипта.

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

Если я нажму Ctrl+C до того, как цикл будет завершен, вывод 65 не будет сброшен. (Я смогу сбросить его позже, конечно) есть ли способ выполнить процесс после нажатия Ctrl+C? например: есть ли способ выполнить скрипт tshwctl --clsdio=65 до того, как он завершит работу при нажатии Ctrl+C?

решение1

Вы можете использовать после шебанга #!/bin/bash:

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

или вы можете удалить --clsdioнижний скрипт и использовать:

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

для запуска команды во всех EXITслучаях использования

http://mywiki.wooledge.org/SignalTrap

Связанный контент