有没有这种工具我不知道,但是可以用trap自己做,你可以man bash看一下trap的介绍:
trap [-lp] [arg] [sigspec ...]
当 shell 收到信号 sigspec 时,命令 arg 将被读取并执行。如果没有给出 arg 或者给出的是 -, 所有指
定的信号被设置为它们的初始值 (进入 shell 时它们的值)。如果 arg 是空字符串, sigspec 指定的信号
被 shell 和它启动的命令忽略。如果 arg 不存在,并且给出了 -p 那么与每个 sigspec 相关联的陷阱 命
令 将被显示出来。如果没有给出任何参数,或只给出了 -p, trap 将打印出与每个信号编号相关的命令列
表。每个 sigspec 可以是 <signal.h> 定义的信号名,或是一个信号编号。如果 sigspec 是 EXIT (0) ,
命 令 arg 将 在 shell 退出时执行。如果 sigspec 是 DEBUG, 命令 arg 将在每个简单命令 (simple
command,参见上面的 SHELL GRAMMAR) 之后执行。如果 sigspec 是 ERR, 命令 arg 将在任何命令以非 零
值退出时执行。如果失败的命令是 until 或 while 循环的一部分, if 语句的一部分, && 或 ││ 序列的
一部分,或者命令的返回值是通过 ! 转化而来, ERR 陷阱将不会执行。选项 -l 使得 shell 打印信号名
和 对应编号的列表。 shell 忽略的信号不能被捕捉或重置。在子进程中,被捕捉的信号在进程创建时被重
置为初始值。返回值为假,如果 sigspec 非法;否则 trap 返回真。