shell trap 信号

trap 捕捉命令,并执行相应的工作。

1、trap "" signal-list

      忽略该信号

2、trap '-' signal-list

     恢复信号的默认操作

3、trap 'commands' signal-list

      trap "commands" signal-list

4、在trap中可以定义对信号0的处理(实际上没有这个信号),shell程序在其终止(如执行 exit 语句)时发出该信号。

在捕捉到signal-list中指定的信号并执行完相应的命令之后,如果这些命令没有将shell终止的话,shell程序将继续执行收到信号时所执行的命令后面的命令,这样将很容
易导致shell程序无法终止。

在使用信号名时需要省略SIG前缀,可以通过 trap -l 来查看信号编号及其关联的名称。trap对同种signal只能相应一种设定,如果在一个shell里面设置多个trap,则最后一个有效。

例如

while true;
do
echo test;
trap 'echo full; echo "don't press ctrl+c again"; sleep 4; exit' INT;
done

 

posted on 2014-07-14 18:27  阿加  阅读(316)  评论(0)    收藏  举报

导航