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)
wxdz_2004(古雨秋)wxdz_2004(古雨秋)
上一篇 2015-05-11
下一篇 2015-05-11

相关推荐

  • mount命令使用详解

    一、挂载(mount)初识     1.什么是挂载         将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录作为其它文件访问入口的行为。     2.常用的文件系统类型 &…

    Linux干货 2016-09-01
  • CentOS6.7下关于vsftpd的应用之一(匿名用户/普通用户/虚拟用户)

    1)使用yum安装vsftpd [root@C67-X64-A1 ~]# /etc/init.d/vsftpd start为 vsftpd 启动 vsftpd:           &nbs…

    Linux干货 2016-09-19
  • 马哥教育网络班22期-第九周课程作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i count=0 declare -i bash_num=0 declare -i&nbs…

    Linux干货 2016-11-21
  • 3rd work

    1、列出当前系统上所有已经登陆的用户名,注意同一个用户登陆多次,则只显示一次即可。 [root@localhost ~]# w 11:50:45 up 24 min,  3 users,  load average: 0.04, 0.04, 0.10 USER     TTY      FROM             LOGIN@   IDLE   JCP…

    Linux干货 2017-10-08
  • SQL优化大全

    1. 优化SQL步骤 1. 通过 show status和应用特点了解各种 SQL的执行频率        通过 SHOW STATUS 可以提供服务器状态信息,也可以使用 mysqladmin extende d-status 命令获得。 SHOW STATUS 可以根据需要显示 session 级别的统计结果和 g…

    Linux干货 2015-04-13
  • 通过堡垒机代理SSH运行Ansible(译)

    有一种常见的网络安全模式是阻止私有网络外部对应用服务器的所有连接(指除了业务数据外其它的连接,如后台管理系统和内部业务系统。译者注),然后使用 DMZ 区域中的 堡垒机 来选择性的将到服务器的流量加入白名单。 我们有这样的一个服务器池,只允许来自特定 IP 地址的 SSH 流量。这些服务器还由 Ansible…

    Linux干货 2015-02-14