Linux trap(捕捉) 命令

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

可显示信号关联的命令。请指正。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14054.html