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

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

本文出自 “北冰–Q” 博客,请务必保留此出处http://beibing.blog.51cto.com/10693373/1894457