Как сказал @pgl, trap
- это то, что вы хотите.Синтаксис:
trap <actionhere> <event> [event...]
Действие - это один и только один аргумент, но оно может выполнять несколько команд.Событие может быть либо exit
(когда вы вызываете exit
вручную), либо сигналом по его «короткому» имени, т.е. без префикса SIG
(например, INT
для SIGINT
.
Пример:
trap "rm -f myfile" INT exit
Вы можете изменить ловушку по всему сценарию. И, конечно, вы можете использовать переменную интерполяцию в своем действии.