trap 命令用于指定在接收到信号后将要采取的行动;
trap 命令的参数分为两部分,前一部分是接收到指定信号时将要采取的行动,后一部分是要处理的信号名。而且必须在你想保护的那部分代码以前指定trap命令。
格式:trap commands signal-list
例如:trap “cp -f /etc/resolv.conf.bak /etc/resolv.conf;exit” INT
……………………………………
信 号(SIGINT) | 说 明 |
HUP(1) | 挂起,通常因终端掉线或用户退出而引发 |
INT(2) | 中断,通常因按下Ctrl+C组合键而引发 |
QUIT(3) | 退出,通常因按下Ctrl+/组合键而引发 |
ABRT(6) | 中止,通常因某些严重的执行错误而引发 |
ALRM(14) | 报警,通常用来处理超时 |
TERM(15) | 终止,通常在系统关机时发送 |
INT 就是中断信号(linux 中是ctrl-C,SCO unix 中是”del”键)
trap 就是捕捉信号,与所提供的arg联系起来,就是当捕捉到某个信号时执行arg规定的动作。
#!/bin/bash
trap “echo -e \”\nreceive int\n\”;exit” INT
while :
do
((i++))
done
由于是死循环,不会退出,按下ctrl-c键后,程序会显示,receive int,并退回$状态。当arg为空时表示忽略后面指出的信号
trap -p
可显示信号关联的命令。请指正。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142472.htm