shell信号捕捉命令 trap

trap 命令

tarp命令用于在接收到指定信号后要执行的动作,通常用途是在shell脚本被中断时完成清理工作。例如:
脚本在执行时按下CTRL+c时,将显示"program exit..."并退出(CTRL+c的信号是SIGINT)

#!/bin/bash
trap "ehco 'program exit...'; exit 2" SIGINT

....
信号

常用信号

信号名称信号数描述
SIGINT2程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl+C)时发出。
SIGQUIT3和SIGINT类似, 但由QUIT字符(通常是Ctrl /)来控制. 进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号。
SIGFPE8在发生致命的算术运算错误时发出. 不仅包括浮点运算错误, 还包括溢出及除数为0等其它所有的算术的错误。
SIGKILL9用来立即结束程序的运行. 本信号不能被阻塞, 处理和忽略。
SIGALRM14时钟定时信号, 计算的是实际的时间或时钟时间. alarm函数使用该信号。 SIGTERM
捕获信号
  • trap的命令语法:

    trap command signal

    这里的command可以是linux命令,或用户定义的函数。signal信号名称信号数,可以指定多个信号,以空格相隔。

  • trap在shell常见用途

    • 脚本退出前执行命令

    脚本在执行时按下CTRL+c时,将显示"program exit..."并退出(CTRL+c的信号是SIGINT)
    shell trap "ehco 'program exit...'; exit 2" SIGINT

    • 忽略信号

    例:脚本运行时忽略 SIGINT SIGQUIT SIGFPE等信号
    shell trap '' 2 3 8

转载于:https://www.cnblogs.com/technologylife/p/8275051.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值