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 указан, то команды trap, связанные с каждым REASON, отображаются. Если аргументы не указаны или указан только -p, то trap печатает список команд, связанных с каждым сигналом.
Имена сигналов нечувствительны к регистру, и префикс SIG является необязательным. Отслеживание сигнала предотвратит выход fish в ответ на этот сигнал.
Код выхода равен 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.5/cmds/trap.html