trap - 在脚本中处理信号

简介: 一:用途说明      trap命令是shell内建的命令,它用在脚本中指定信号如何处理。   比如,按Ctrl+C会使脚本终止执行,实际上系统发送了SIGINT信号给脚本进程,SIGINT信号的默认处理方式就是退出程序。

一:用途说明

     trap命令是shell内建的命令,它用在脚本中指定信号如何处理。

  比如,按Ctrl+C会使脚本终止执行,实际上系统发送了SIGINT信号给脚本进程,SIGINT信号的默认处理方式就是退出程序。如果要在Ctrl+C不退出程序,那么就得使用trap命令来指定一下SIGINT的处理方式了。

  trap命令不仅仅处理Linux信号,还能对脚本退出(EXIT)、调试(DEBUG)、错误(ERR)、返回(RETURN)等情况指定处理方式。

二:常见参数

  1:trap "commands" signals

  当shell接收到signals指定的信号时,执行commands命令。

  2:trap signals

  如果没有指定命令部分,那么就将信号处理复原。比如 trap INT 就表明恢复Ctrl+C退出。

  3:trap "" signals

  忽略信号signals,可以多个,比如 trap "" INT 表明忽略SIGINT信号,按Ctrl+C也不能使脚本退出。又如 trap "" HUP 表明忽略SIGHUP信号,即网络断开时也不能使脚本退出。

  4:trap -p

  将当前的tarp设置打印出来。

  5:trap -l

  把所有信号打印出来。

  6:trap "commands" EXIT

  脚本退出时执行commands指定的命令。

  7:trap "commands" DEBUG

  在脚本执行时打印调试信息,比如打印将要执行的命令及参数列表。

  8:trap "commands" ERR

  当命令出错,退出码非0,执行commands指定的命令。

  9:trap "commands" RETURN

  当从shell函数返回、或者使用source命令执行另一个脚本文件时,执行commands指定的命令。

 

目录
相关文章
|
Web App开发 消息中间件
UC编程8-信号发送函数kill/raise/setitimer/alarm和信号集函数segprocmask
//myuc.h #include//io流 #include//标准库 #include//uc标准头文件 #include//文件控制 #include//c字符串 #include #include//内存映射 #include//文件...
874 0
|
Shell Linux
Linux Command trap 信号捕捉
Linux Command trap 信号捕捉
|
Linux
【Linux信号专题】三、未决信号集、阻塞信号集与信号集操作函数
【Linux信号专题】三、未决信号集、阻塞信号集与信号集操作函数
394 0
【Linux信号专题】三、未决信号集、阻塞信号集与信号集操作函数
|
Linux C语言 Go
linux信号处理--通过发送信号控制进程
<p>要求:</p> <p>        <span style="font-family:'Microsoft YaHei UI','Microsoft YaHei',SimSun,'Segoe UI',Tahoma,Helvetica,sans-serif,'Microsoft YaHei',Georgia,Helvetica,Arial,sans-serif,宋体,PMingLi
1664 0
|
Unix Shell
《UNIX编程环境》——5.4 trap:捕获中断
如果在运行watchwho时突然按下Delete键或挂断电话,在目录/tmp中,将保存一个或两个临时文件。Watchwho应该在退出之前清除这些暂存文件。我们需要一定的手段来检测各种中断事件,并进行恢复处理。
1739 0
|
10月前
|
消息中间件 NoSQL Linux
Linux进程信号【信号保存】
Linux进程信号【信号保存】
87 0
|
6月前
|
NoSQL
gdb中获取进程收到的最近一个信号的信息
gdb中获取进程收到的最近一个信号的信息
|
存储 Linux 程序员
理解--信号
理解--信号
136 0