Linux Shell的信号trap功能细节有哪些
这篇文章给大家介绍Linux Shell的信号trap功能细节有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
它有三种形式分别对应三种不同的信号回应方式.
第一种: trap 'commands' signal-list 当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令.
第二种: trap signal-listtrap 不指定任何命令,接受信号的默认操作.默认操作是结束进程的运行.
第三种: trap ' ' signal-listtrap 命令指定一个空命令串,允许忽视信号.
NOTE:trap 对同种signal只能相应一种设定,如果在一个shell里面设置多个trap,那么它只会响应最后一个信号设定。
如:trap ' echo “aaaaaaaaaaa” ' INT
trap ' echo “bbbbbbbbbbb” ' INT
那么它只会响应最后一个信号设定。
如下X/Open规范里面规定的能够被捕获的比较重要的一些信号(括号里面的数字是传统的信号编号)
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功能细节有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341