高级 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
超级会员免费看
订阅专栏 解锁全文
3623

被折叠的 条评论
为什么被折叠?



