教程集 www.jiaochengji.com
教程集 >  脚本编程  >  shell  >  正文 shell中trap实例分享(信号捕获)

shell中trap实例分享(信号捕获)

发布时间:2014-10-19   编辑:jiaochengji.com
本文介绍下,有关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 1
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信号来处理程序信息例子

[关闭]
~ ~