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//文件...
872 0
|
Shell Linux
Linux Command trap 信号捕捉
Linux Command trap 信号捕捉
|
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
1659 0
|
Linux
【Linux信号专题】三、未决信号集、阻塞信号集与信号集操作函数
【Linux信号专题】三、未决信号集、阻塞信号集与信号集操作函数
388 0
【Linux信号专题】三、未决信号集、阻塞信号集与信号集操作函数
|
9月前
|
存储 Shell Linux
第九章 Shell信号发送与捕捉
第九章 Shell信号发送与捕捉
|
Linux
Linux下信号处理(发送、捕获)
Linux下进行应用编程时,信号的处理必不可少。信号可以用于多进程间通信,这篇文章就介绍如何发送信号,捕获信号。
501 0
|
Shell 程序员
shell中的信号捕获trap(shell 进阶)
shell中的信号捕获trap(shell 进阶)
182 0
shell中的信号捕获trap(shell 进阶)
|
Shell C语言 开发者
Shell脚本信号捕获|学习笔记
快速学习Shell脚本信号捕获
Shell脚本信号捕获|学习笔记

热门文章

最新文章