trap - выполнение действия при получении оболочкой сигнала
Synopsis
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.
© 2005-2009 Axel Liljencrantz, 2009-2023 fish-shell contributors
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.7/cmds/trap.html