专栏首页姚红专栏trap - 在脚本中处理信号

trap - 在脚本中处理信号

一:用途说明

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指定的命令。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • shell脚本输出带颜色字体

    yaohong
  • Centos7上部署openstack ocata配置详解

    之前写过一篇《openstack mitaka 配置详解》然而最近使用发现阿里不再提供m版本的源,所以最近又开始学习ocata版本,并进行总结,写...

    yaohong
  • Centos7上部署openstack mitaka配置详解(将疑难点都进行划分)

    在配置openstack项目时很多人认为到处是坑,特别是新手,一旦进坑没有人指导,身体将会感觉一次次被掏空,作为菜鸟的我也感同身受,因为已经被掏空...

    yaohong
  • 20 个值得学习的 Vue 开源项目

    Vue 相对不于 React 的一个优点是它易于理解和学习,且在国内占大多数。咱们可以在 Vue 的帮助下创建任何 Web 应用程序。 因此,时时了解一些新出现...

    前端小智@大迁世界
  • 34个最受欢迎的JavaScript库

    在编写调试Node.js项目,修改代码后,需要频繁的手动 close 掉,然后再重新启动,非常繁琐。现在,我们可以使用nodemon这个工具,它的作用是监听代码...

    Fundebug
  • GitHub官宣:面向所有人,全部核心功能完全免费开放

    4月14日,GitHub宣布,将为所有的GitHub用户提供不受协作者限制的私有存储库,并且GitHub的核心功能现在对所有人免费开放。

    大数据文摘
  • 用python“科学”预测下《哪吒》票房

    最近几天,朋友圈和微博被《哪吒之魔童降世》刷屏了。不少看过的朋友都成为“自来水”,力荐此片。

    Crossin先生
  • 理解计算:从根号2到AlphaGo番外篇——眼见未必为实--漫谈图像隐写术

    传递秘密消息的历史非常悠久,在公元前500年左右的波希战争时期,就有将奴隶的头发剃掉,然后在头皮上刺上字,等奴隶的头发张长后,将这个人派去传递消息,一次消息传递...

    SIGAI学习与实践平台
  • 理解计算:从根号2到AlphaGo番外篇 眼见未必为实--漫谈图像隐写术

    有很多技术都致力于保护信息安全,其中有两类技术最为著名,一个是密码学,另一类就是密写术,也称为隐写术。应邀借此机会向大家谈谈隐写术这个很多人都不太熟悉的领域。本...

    SIGAI学习与实践平台
  • 用python“科学”预测下《哪吒》票房

    最近几天,朋友圈和微博被《哪吒之魔童降世》刷屏了。不少看过的朋友都成为“自来水”,力荐此片。

    昱良

扫码关注云+社区

领取腾讯云代金券