shell中trap可设置脚本的信号处理函数,格式如下:
trap signal_handler HUP INT QUIT TSTP TERM EXIT
注:
1、signal_handler 是信号处理函数;
2、HUP INT QUIT TSTP TERM EXIT 是相关信号。
3、如果要重置某个信号的处理条件到其默认值,只需简单的将command设置为-。
4、如果要忽略某个信号,就把command设置为空字符串‘’。一个不带参数的trap命令将列出当前设置的信号及其行动的清单。
表2-11列出了X/Open规范里面规定的能够被捕获的比较重要的一些信号(括号里面的数字是传统的信号编号)。更多细节请参考signal在线手册的第七部分(man 7 signal)。
表 2-11
信 号 | 说 明 |
HUP(1) | 挂起,通常因终端掉线或用户退出而引发 |
INT(2) | 中断,通常因按下Ctrl+C组合键而引发 |
QUIT(3) | 退出,通常因按下Ctrl+/组合键而引发 |
ABRT(6) | 中止,通常因某些严重的执行错误而引发 |
ALRM(14) | 报警,通常用来处理超时 |
TERM(15) | 终止,通常在系统关机时发送 |
另外在Bash还有两个伪信号:
代码:
EXIT shell从脚本中退出后发送该信号
DEBUG shell执行完一条语句后发送该信号