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
浙公网安备 33010602011771号