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从入门到精通

shell从入门到精通(21)如何引用其他shell定义的变量或者函数

shell从入门到精通(21)如何引用其他shell定义的变量或者函数

Python从入门到精通

ROS从入门到精通系列(二十五)--常用工具值shell脚本启动多条指令

ROS从入门到精通系列(二十五)--常用工具值shell脚本启动多条指令