выполнять сценарий B всякий раз, когда сценарий A завершается нажатием CTRL C - PullRequest
0 голосов
/ 05 марта 2020

поэтому у меня есть этот код, который использует GPIO, и перед его запуском он включает светодиод, чтобы мы знали, что скрипт был запущен, и что происходит что-то ненормальное.

echo "17" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio17/direction
echo "1" > /sys/class/gpio/gpio17/value

проблема в том, что иногда люди нажимают «ctrl c» и выходят из сценария без сброса GPIO

Мне было интересно, есть ли какой-то способ запуска некоторых строк кода для выполнения определенных действий всякий раз, когда код убивается с помощью CTRL C

1 Ответ

4 голосов
/ 05 марта 2020

Если вы хотите выполнить очистку, установите ловушку. В этом случае кажется, что вы хотите echo 1 до gpio17 / value при выходе из скрипта:

trap 'echo 1 > /sys/class/gpio/gpio17/value' 0

Это выполнит команду независимо от того, как выйдет скрипт. (Если сценарий не получит SIGKILL. Вы ничего не можете с этим поделать.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...