Shell 编程内置命令 trap 命令

trap 命令用于指定在接收到信号后将要才去的行动。

trap command signal

command:执行的命令

signal:接收的信号

如果要重置某个信号的处理为默认值,只需要将 command 设置为 -

如果要忽略掉某个信号,只需要将 command 设置为空字符串 ""

下表列出了 X/Open 规范里面规定的一些比较重要的信号

信号 说明
HUP(1) 挂起,引用终端掉线或用户退出而引发
INT(2) 中断,通常按下 Ctrl+C 引发
QUIT(3) 退出,通常按下 Ctrl+\ 引发
ABRT(6) 中止,通常因某些严重错误引发
ALRM(14) 报警,通常用来处理超时
TERM(15) 终止,通常在系统关机时发送

示例:

#!/bin/sh
trap "echo you can not exit" INT
while :
do
    echo hello
    sleep 1
done
echo shell never get here
exit 0

该示例中我们接收 INT 信号,并接收信号后打印出一句话。

运行该脚本后,按Ctrl+C,脚本无法结束,并会打印出 you can not exit

你可能感兴趣的:(linux)