trap - выполнение действия при получении сигналом оболочкой
Краткое описание
trap [OPTIONS] [[ARG] REASON ... ]
Описание
trap является оболочкой над фреймворком доставки событий fish. Она существует для обеспечения обратной совместимости с оболочками POSIX. Для других целей рекомендуется определить обработчик событий.
Доступны следующие параметры:
-
ARG— команда, которая будет выполнена при поступлении сигнала. -
REASON— имя события, которое нужно перехватить. Например, сигнал типаINTилиSIGINT, или специальный символEXIT. -
-lили--list-signalsвыводят список имён сигналов. -
-pили--printвыводят все определённые обработчики сигналов.
Если ARG и REASON указаны оба, ARG — это команда, которая будет выполнена при поступлении события, указанного в REASON (например, при поступлении сигнала).
Если ARG отсутствует (и есть только один REASON) или равно -, каждый указанный сигнал сбрасывается к своему исходному состоянию (значению, которое он имел при входе в оболочку). Если ARG является пустой строкой, указанный в каждом REASON сигнал игнорируется оболочкой и командами, которые она вызывает.
Если ARG отсутствует, а -p указан, отображаются команды trap, связанные с каждым 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.
© 2020 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.2/cmds/trap.html