Проверьте, установлена ли ловушка в Bash
Есть ли способ проверить, что trap
были установлены (в текущем сеансе или сценарии) в Bash?
В идеале я бы хотел получить список сигналов, которые имеют trap
назначен им, но если это невозможно, я могу просто проверить каждый сигнал в отдельности.
2 ответа
Решение
Да
Вы можете увидеть либо все ловушки, либо ловушки для определенного сигнала:
$ trap # show all traps for all signals
$ trap -p SIGINT # only show traps for SIGINT
$ trap -p EXIT # only show traps for EXIT
Давайте определим функцию следующим образом:
$ function f
> {
> echo trapped
> }
Давайте установим ловушку на эту функцию, назначенную SIGINT
$ trap f SIGINT
Давайте перечислим множество ловушек:
$ trap
trap -- 'f' SIGINT
trap -- '' SIGTSTP
trap -- '' SIGTTIN
trap -- '' SIGTTOU