linux脚本 trap,Linux Shell的信号trap功能细节

它有三种形式分别对应三种不同的信号回应方式.

第一种:

trap 'commands' signal-list       当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令.

第二种:

trap signal-list

trap              不指定任何命令,接受信号的默认操作.默认操作是结束进程的运行.

第三种:

trap ' ' signal-list

trap          命令指定一个空命令串,允许忽视信号.

NOTE:trap 对同种signal只能相应一种设定,如果在一个shell里面设置多个trap,那么它只会响应最后一个信号设定。

如:

trap   ' echo “aaaaaaaaaaa”  '  INT

trap   ' echo “bbbbbbbbbbb”  '  INT

那么它只会响应最后一个信号设定。

如下X/Open规范里面规定的能够被捕获的比较重要的一些信号(括号里面的数字是传统的信号编号)

trap命令常见的用途在于脚本程序中断时完成清理工作,比如临时文件等.

ba06d8fe89f9fbd933482a6990fd87d5.png

trap命令举例

eg 1:

[root@xyhl ~]# trap "echo aaaaaa" 2

[root@xyhl ~]# ^Caaaaaa   ==》执行ctrl+c,捕获到信号2,将执行打印

eg 2:    如果遇到INT中断,即Ctrl+c,即删除该文件

#!/bin/bash

trap 'rm -f /tmp/my_tmp_file_$$' INT

echo "creating file /tmp/my_tmp_file_$$"

date > /tmp/my_tmp_file_$$

echo "press interrupt (CTRL-C) to interrupt ......"

while [ -f /tmp/my_tmp_file_$$ ];

do

echo "File exists"

sleep 3

done

echo" we never get here"

exit 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值