trap - выполнение действия при получении сигналов оболочкой
Синтаксис
trap [OPTIONS] [[ARG] REASON ... ]
Описание
trap — это оболочка вокруг фреймворка доставки событий Fish. Она существует для обратной совместимости с оболочками POSIX. Для других целей рекомендуется определить обработчик событий обработчик событий.
Доступны следующие параметры:
- ARG
-
Команда, которая должна быть выполнена при поступлении сигнала.
- REASON
-
Имя события для перехвата. Например, сигнал, такой как
INTилиSIGINT, или специальный символEXIT. - -l или --list-signals
-
Выводит список имён сигналов.
- -p или --print
-
Выводит все определённые обработчики сигналов.
- -h или --help
-
Отображает справку по использованию этой команды.
Если ARG и REASON оба указаны, то ARG — это команда, которая должна быть выполнена, когда произойдёт событие, указанное в REASON (например, сигнал доставлен).
Если ARG отсутствует (и есть только один REASON) или -, каждый указанный сигнал сбрасывается до своего исходного состояния (значения, которое он имел при входе в оболочку). Если ARG — это пустая строка, то сигнал, указанный в каждом REASON, игнорируется оболочкой и вызываемыми ею командами.
Если ARG отсутствует, и был передан параметр -p, то команды перехвата, связанные с каждым REASON, будут отображены. Если не указаны никакие аргументы или указан только -p, то trap выводит список команд, связанных с каждым сигналом.
Имена сигналов регистронезависимы, и префикс SIG необязателен.
Код возврата равен 1, если какой-либо REASON неверен; в противном случае trap возвращает 0.
Пример
trap "status --print-stack-trace" SIGUSR1 # Prints a stack trace each time the SIGUSR1 signal is sent to the shell.
© 2022 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.4/cmds/trap.html