У меня есть оборудование, которое я тестирую с помощью 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
случаях использования