A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-bash: trap: command not found #Debian apt-get install execline #Ubuntu apt-get install execline #Alpine apk add execline #Kali Linux apt-get install execline #Docker docker run cmd.cat/trap trap
trap 命令定义并激活在 shell
收到信号或其他特殊条件时运行的处理程序。
ARG 是当 Shell 收到信号 SIGNAL_SPEC
时要读取并执行的命令。如果不存在 ARG(并且提供了一个 SIGNAL_SPEC
)或 ARG 是破折号 -,则每个指定的信号都将重置为其原始值。如果 ARG 为空 字符串,则每个 shell 及其调用的命令都会忽略每个 SIGNAL_SPEC
。
如果 SIGNAL_SPEC
为 EXIT (0),则从外壳退出时将执行 ARG。
如果 SIGNAL_SPEC
是 DEBUG,则在每个简单命令之前执行 ARG。
如果 SIGNAL_SPEC
为 RETURN,则每次执行由。或源内置命令运行的 shell 函数或脚本时,都会执行 ARG。
一个 SIGNAL_SPEC
的 ERR 意味着执行 ARG 每个当一个命令的失败会导致 shell 退出时间 -e 选项启用。
如果未提供任何参数,则 trap 打印与每个信号关联的命令列表。
trap [-lp] [[ARG] SIGNAL_SPEC...]
-l 打印信号名称及其对应编号的列表。 -p 显示与每个 SIGNAL_SPEC 关联的陷阱命令。
显示信号名称及其对应编号的列表:
$ trap -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
显示当前设置的信号陷阱的列表。
$ trap trap -- '' SIGTSTP trap -- '' SIGTTIN trap -- '' SIGTTOU
设置一个陷阱,该陷阱在出现 Shell 错误或退出 Shell 时会删除临时文件 xyz$$
。
trap 'rm -f /tmp/xyz$$; exit' ERR EXIT
列出当前 shell 的活动陷阱:
$ trap -p trap -- '' SIGTSTP trap -- '' SIGTTIN trap -- '' SIGTTOU
设置一个陷阱,该陷阱在出现 Shell 错误或退出 Shell 时会删除临时文件 xyz$$
。
trap 'rm -f /tmp/xyz$$; exit' ERR EXIT
设置陷阱以在检测到一个或多个信号时执行命令:
trap 'echo "Caught signal SIGHUP"' SIGHUP
删除活动陷阱:
trap - SIGHUP SIGINT