shell从入门到精通(10)信号捕获和处理
Posted 奇妙之二进制
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell从入门到精通(10)信号捕获和处理相关的知识,希望对你有一定的参考价值。
前言
Linux利用信号与运行在系统中的进程进行通信。当你在终端中启动一个前台进程,按下(Ctrl +C),Linux内核会生成SIGINT信号中断该进程。而trap命令可以在信号出现时捕获,修改信号的默认处理动作。
捕获信号
trap命令允许你来指定shell脚本要监听并从shell中拦截的Linux信号。如果在脚本收到了trap命令中列出的信号,该信号不再由shell处理,而是交给本地处理。
trap命令格式:
trap command signals-list
signals-list表示要捕获的信号列表,多个信号以空格隔开,command表示收到信号后执行的命令。
下面通过一个例子,展示如何用trap命令来忽略SIGINT信号,并控制脚本的行为:
#!/bin/bash
#测试信号捕获
trap "echo \' Sorry! I have trapped Ctrl-C\'" SIGINT
echo &#
以上是关于shell从入门到精通(10)信号捕获和处理的主要内容,如果未能解决你的问题,请参考以下文章
shell从入门到精通(21)如何引用其他shell定义的变量或者函数
shell从入门到精通(21)如何引用其他shell定义的变量或者函数