zoukankan      html  css  js  c++  java
  • 4.Shell编程之trap命令

    参考:https://www.jianshu.com/p/6cffb6f3d928

    前序

    今天看公司里面的一段代码,看到下面一段:

    trap "${log_cmds}" EXIT

    当时看到这段以为这个trap是自己写的一个函数,搜索了一下才发现这个居然是linux自带的一个命令,了解之后才发现这个命令的功能真是太强大了。实在是值得我好好写一篇文章记载下来。

    用法

    到底是什么功能惊艳到我呢?trap是一个可以设置接收信号类型,然后执行你给出的命令的命令。比如上面我贴的代码,放在脚本里面的含义就是当脚本执行完毕,执行中间的命令。这种类似回调函数和Go语言中defer一样的用法,没想到Shell里面也有。具体的用法就是:

    trap command signal

    其中中间的是我们需要执行的命令,最后的是我们想要监听的信号(这里就不列出了所有的信号,可以trap -l查看),这样以后如果需要在脚本执行完毕后加log,就可以这么操作。

    例子

     trap "echo 'xxoo' " HUP INT QUIT TSTP

    执行完上面命令,每次在控制台Ctrl+c都会打印"xx00",这样我们可以做到屏蔽信号的作用,恢复到原样,执行下面的命令

    trap : HUP INT QUIT TSTP   #备注,: 是屏蔽信号的作用

    小结

    关于Linux的命令和Shell编程真是博大精深,需要好好去学习,去从别人的代码中去学习。

     
  • 相关阅读:
    JZOJ1495 宝石
    JZOJ1496 页
    jzoj1497. 景点中心
    2019.8.2总结
    学习进度报告2021/3/19
    学习进度报告2021/3/18
    《学会提问》读书笔记2
    学习进度报告2021/3/17
    学习进度报告2021/3/16
    学习进度报告2021/3/15
  • 原文地址:https://www.cnblogs.com/robinunix/p/13265516.html
Copyright © 2011-2022 走看看