seo优化 > 编程开发 > shell教程 阅读:0

Linux Shell trap命令捕获信号实例演示

通过前面内容的学习,我们已经知道,信号多用于以友好的方式结束一个进程的执行,即允许进程在退出之前有机会做一些清理工作。

本文介绍下,有关shell中trap的应用实例,有需要的朋友参考下。

trap可以用在shell脚本接收各种中断信号。

在shell中针对同个信号不同的函数有不同的处理手法时,可参考如下用例:

复制代码代码示例:

#!/bin/bash

#edit by www.jquerycn.cn

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对其没影响。


beylze教程学院,一个分享编程知识和seo优化知识的网站。跟着beylze一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

文章不深奥,不需要钻研,在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

文章不涉及代码,不烧脑细胞,人人都可以学习。

当你决定关注beylze(公众号:beylze),你已然超越了90%的其他从业者!

'); })();