Trap命令简介

 Trap命令简介

 

 

一、基本概念

 trap是一个shell内建命令,它用来在脚本中指定信号如何处理。比如,按Ctrl+C会使脚本终止执行,实际上系统发送了SIGINT信号给脚本进程,SIGINT信号的默认处理方式就是退出程序。如果要在Ctrl +C不退出程序,那么就得使用trap命令来指定一下SIGINT的处理方式了。trap命令不仅仅处理Linux信号,还能对脚本退出(EXIT)、调试(DEBUG)、错误(ERR)、返回(RETURN)等情况指定处理方式。

二、基本格式

  格式:trap "commands" signals

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

1、格式:trap signals

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

2、格式:trap "" signals

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

3、格式:trap -p signal

         把当前的trap设置打印出来

4、格式:trap -l

         把所有信号打印出来

5、格式:trap "commands" EXIT

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

三、实例分析

         1、写一个脚本ping  ABCIP地址探测所有的主机是否在线;

         1.png

         说明:如果范围为{1..255}时,执行时间比较长,此时ctrl+c中断时无法中断,这时我们可以使用tarp命令,当执行ctrl+c时,会执行一个命令或者行数,见例2

         2、用trap实现中断执行;

         2.png

         3.png

         说明:此时执行ctrl+c时将调用quitScript函数,执行退出。

原创文章,作者:wxdz_2004(古雨秋),如若转载,请注明出处:http://www.178linux.com/4199

(2)
上一篇 2015-05-11 14:07
下一篇 2015-05-11 14:11

相关推荐

  • vim基本总结

    ASCII可以将计算机存储的0或1转成我们认识的文字。在Linux中,绝大部分的配置文件都是以ASCII的纯文本形态存在。通过文本编辑器,可以实现对这些文本文件的更改。常风的文本编辑器有emacs, pico,nano,joe与vi(vim是vi的升级版)等。那么为会么要学vi呢? l 因为vi是内置编辑器,系统安装好就有了 l 很多软件…

    2017-08-05
  • pam_mysql认证ftp虚拟用户账号

    pam_mysql认证ftp虚拟用户账号: 虚拟用户:        用户账号存储于何处?        文件、MySQL、Redis、…       &nb…

    2017-06-13
  • N23_第五周

    1.显示/boot/grub/grub.conf中以至少一个空白字符开头的行 egrep “^[[:space:]]{1,}” /boot/grub/grub.conf 2.显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行 egrep “^#[[:space:]]{1,}.*[^[:space…

    Linux干货 2017-02-27
  • 关于ip_conntrack跟踪连接满导致网络丢包问题的分析

    http://ixdba.blog.51cto.com/2895551/1737642

    Linux干货 2016-06-03
  • 文件管理类命令常用使用方法及其相关示例演示

    文件管理类命令常用使用方法及其相关示例演示 cat chattr chmod chown cp ln locate lsattr mv rm tee touch umask whereis which 文件管理类命令常用使用方法及其相关示例演示 cat 使用语法:cat [-AbeEnstTuv][–help][–version] FILENAME&nb…

    Linux干货 2016-11-05
  • Linux软件包管理之程序包编译安装

    程序包编译 程序包编译安装: Application-VERSION-release.src.rpm–>      安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装 源代码–>预处理–>编译(gcc)–>汇编&#82…

    Linux干货 2016-08-25