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