Linux

trap 命令用于指定在接收到信号后将要采取的动作,常见的用途是在脚本程序被中断时完成清理工作。
当shell接收到sigspec指定的信号时,arg参数(命令)将会被读取,并被执行。

trap 信号参数说明

信号         说明
HUP(1)     # 挂起,通常因终端掉线或用户退出而引发
INT(2)     # 中断,通常因按下Ctrl+C组合键而引发
QUIT(3)    # 退出,通常因按下Ctrl+组合键而引发
ABRT(6)    # 中止,通常因某些严重的执行错误而引发
ALRM(14)   # 报警,通常用来处理超时
TERM(15)   # 终止,通常在系统关机时发送

  trap 反应方式

trap捕捉到信号之后,可以有三种反应方式:
1、执行一段程序来处理这一信号
2、接受信号的默认操作
3、忽视这一信号

第一种形式的trap命令在shell接收到 signal list 清单中数值相同的信号时,将执行双引号中的命令串:
trap 'commands' signal-list # 单引号,要在shell探测到信号来的时候才执行命令和变量的替换,时间一直变
trap "commands" signal-list # 双引号,shell第一次设置信号的时候就执行命令和变量的替换,时间不变

  

例如:
trap "exit 1" HUP INT PIPE QUIT TERM
表示当shell收到HUP INT PIPE QUIT TERM这几个命令时,当前执行的程序会读取参数“exit 1”,并将它作为命令执行。
原文地址:https://www.cnblogs.com/sharesdk/p/8696367.html