shell中trap实例分享(信号捕获)
trap可以用在shell脚本接收各种中断信号。
在shell中针对同个信号不同的函数有不同的处理手法时,可参考如下用例:
#!/bin/bash
#edit by www.jiaochengji.com
trap "_reload $1" 1
_f1(){
echo $$
while((1))
do
date
sleep 0.5
done
}
_f2(){
echo $$
while((1))
do
uptime
sleep 0.5
done
}
_reload(){
[ $1 -eq 2 ]&&echo $$
}
case $1 in
1)
_f1;;
2)
_f2;;
esac
保存为:test.sh。
以上脚本实现了2个函数,_t1和_t2,分别用参数1和2调用:
test.sh 2
脚本接受kill -1 test.sh_pid时,执行_reload函数,判断$1等于2时,输出进程号,否则没动作。
即只有执行test.sh 2时,接收到kill -1信号才会有动作。
test.sh 1时,kill -1对其没影响。
您可能感兴趣的文章:
shell中trap实例分享(信号捕获)
shell 脚本调试方法分析
shell编程技巧小结(三)
Go 编程: 应用级抽象之信号管控
如何编写健壮的Bash脚本
编写健壮的Bash脚本
shell脚本学习总结-2012
shell脚本实例与shell参数用法
(原创)linux杀死进程以及发送或响应信号
java捕获kill信号来处理程序信息例子