温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux Shell的信号trap功能细节有哪些

发布时间:2021-11-05 16:03:57 来源:亿速云 阅读:177 作者:柒染 栏目:建站服务器

这篇文章给大家介绍Linux Shell的信号trap功能细节有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

它有三种形式分别对应三种不同的信号回应方式.

第一种:  trap 'commands' signal-list       当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令.

第二种:  trap signal-list trap              不指定任何命令,接受信号的默认操作.默认操作是结束进程的运行.

第三种:  trap ' ' signal-list trap          命令指定一个空命令串,允许忽视信号.

NOTE:trap 对同种signal只能相应一种设定,如果在一个shell里面设置多个trap,那么它只会响应最后一个信号设定。

如: trap   ' echo “aaaaaaaaaaa”  '  INT

        trap   ' echo “bbbbbbbbbbb”  '  INT

那么它只会响应最后一个信号设定。

如下X/Open规范里面规定的能够被捕获的比较重要的一些信号(括号里面的数字是传统的信号编号)

trap命令常见的用途在于脚本程序中断时完成清理工作,比如临时文件等.

Linux Shell的信号trap功能细节有哪些

trap命令举例

eg 1:

[root@xyhl ~]# trap "echo aaaaaa" 2
[root@xyhl ~]# ^Caaaaaa   ==》执行ctrl+c,捕获到信号2,将执行打印

eg 2:    如果遇到INT中断,即Ctrl+c,即删除该文件

#!/bin/bash

trap 'rm -f /tmp/my_tmp_file_$$' INT

echo "creating file /tmp/my_tmp_file_$$"

date > /tmp/my_tmp_file_$$

echo "press interrupt (CTRL-C) to interrupt ......"

while [ -f /tmp/my_tmp_file_$$ ];

do       echo "File exists"      

           sleep 3

done

echo" we never get here" exit 0

关于Linux Shell的信号trap功能细节有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI