shell进阶--信号

1.各种信号

1信号:hub 进程重新读取对应的配置文件
2信号:中断------ctrl+c 就会触发该信号
3信号:
9信号
15
18
19

2.信号捕捉trap

Trap捕获某个信号,不去做原有的操作,只操作自己指定的操作

trap '触发指令' 信号进程收到系统发出的指定信号后,将执行自定义指令,而不会执行原操作
trap '' 信号忽略信号的操作
trap '-' 信号恢复原信号的操作
trap -p列出自定义信号操作
trap finish EXIT 当脚本退出时,执行finish函数

例如:
捕获2信号(int)
Int 就是2信号
单引号引起来—触发指令
在这里插入图片描述
按ctrl+c就会触发指令
在这里插入图片描述
Trap ‘’ 信号 不会执行任何操作
在这里插入图片描述
在这里插入图片描述
Trap ‘’ 信号 将信号还原
在这里插入图片描述
在这里插入图片描述

3.finish函数

脚本执行一半就退出----就会产生一些垃圾文件
为了避免垃圾文件的产生
所以就用finish函数 及exit命令
用这种方式处理异常退出
Finish中写一些清理临时文件的操作

Trap finish exit 当执行exit退出时,就会触发finish函数
Exit退出(无论什么退出)都执行finish
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实例 #!/bin/bash trap ‘echo “signal:SIGINT"’ int trap -p for((i=0;i<=10;i++)) do sleep 1 echo $i done trap ‘’ int trap -p for((i=11;i<=20;i++)) do sleep 1 echo $i done trap ‘-’ int trap -p for((i=21;i<=30;i++)) do sleep 1 echo $i done