trap [-lp] [arg] [sigspec ...]
当 shell 收到信号 sigspec 时,命令 arg 将被读取并执行。如果没有给出 arg 或者给出的是 -,
所有指定的信号被设置为它们的初始值 (进入 shell 时它们的值)。如果 arg 是空字符串, sigspec 指定的信号被
shell 和它启动的命令忽略。如果 arg 不存在,并且给出了 -p 那么与每个 sigspec
相关联的陷阱命令将被显示出来。如果没有给出任何参数,或只给出了 -p, trap 将打印出与每个信号编号相关的命令列表▒ 每个
sigspec 可以是
定义的信号名,或是一个信号编号。 如果 sigspec 是 EXIT (0),命令
arg 将在 shell 退出时执行。如果 sigspec 是 DEBUG, 命令 arg 将在每个简单命令 (simple
command,参见上面的 SHELL GRAMMAR) 之后执行。如果 sigspec 是 ERR, 命令 arg
将在任何命令以非零值退出时执行。如果失败的命令是 until 或 while 循环的一部分, if 语句的一部分, && 或
⎪⎪ 序列的一部分,或者命令的返回值是通过 ! 转化而来, ERR 陷阱将不会执行。选项 -l 使得 shell
打印信号名和对应编号的列表。 shell 忽略的信号不能被捕捉或重置。在子进程中,被捕捉的信号在进程创建时被重置为
初始值。
返回值为假,如果 sigspec 非法;否则 trap 返回真。
linux trap
最新推荐文章于 2021-05-14 04:00:17 发布