17、高级 shell 编程全解析

高级 shell 编程全解析

1. 信号的发送与捕获

在某些情形下,我们不希望误按 ctrl - C 就终止当前进程。例如,当执行一个会对文件进行重大修改的复杂脚本时,如果脚本执行到一半就因误按 ctrl - C 而终止,文件空间可能会陷入混乱。这时候就需要用到信号捕获机制。

信号捕获机制允许 shell 在接收到信号时执行我们指定的操作,而非执行默认操作。用于拦截信号的命令是 trap ,其使用方式如下:

trap ’action’ signal

其中, action 可以为空或包含一个命令的字符串, signal 是信号名称之一。

下面是一个示例脚本 interrupts

trap ’echo Ouch’ INT
echo Beginning
sleep 10
echo ten seconds
sleep 10
echo twenty seconds
sleep 10
echo thirty seconds and ended

使用 sh 执行该脚本,在终端中多次按下 ctrl - C ,观察结果:

$ sh interrupts
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值