Как реализовать обработку событий в сценарии оболочки? - PullRequest
1 голос
/ 16 декабря 2011

В моем сценарии оболочки я удаляю файл в конце сценария. И мне нужно, чтобы он был удален, даже если сценарий был остановлен (Ctrl C или Ctrl Z) .. Есть ли способ прочитать это и удалить файл?

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 16 декабря 2011

Как сказал @pgl, trap - это то, что вы хотите.Синтаксис:

trap <actionhere> <event> [event...]

Действие - это один и только один аргумент, но оно может выполнять несколько команд.Событие может быть либо exit (когда вы вызываете exit вручную), либо сигналом по его «короткому» имени, т.е. без префикса SIG (например, INT для SIGINT.

Пример:

trap "rm -f myfile" INT exit

Вы можете изменить ловушку по всему сценарию. И, конечно, вы можете использовать переменную интерполяцию в своем действии.

2 голосов
/ 16 декабря 2011

Вы можете поймать Ctrl + C с помощью встроенного trap.Попробуйте это, чтобы начать:

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