1.信号
linux通过信号来在运行在系统上的进程之间通信,也可以通过信号来控制shell脚本的运行

主要有一下信号
1 ##进程重新加载配置 2 ##删除进程在内存中的数据 3 ##删除鼠标在内存中的数据 9 ##强行结束单个进程(不能被阻塞) 15 ##正常关闭进程
(可能被阻塞) 18 ##运行暂停的进程 19 ##暂停某个进程 (不能被阻塞) 20 ##把进程号打入后台 man 7 signal ##查看信号详细信息
1)捕捉信号:trap命令
#常用信号 ctrl+c(终止进程) ctrl+z(暂停进程)



如上图,信号2与ctrl+c的作用时一样的
stty -a ##列出中断信号与键盘的关系

trap "" 2 ##信号屏蔽,此时按ctrl+c就不会有作用 trap : 2 ##恢复信号
2)捕捉脚本的退出
#!/bin/bash trap "echo 'Sorry!I have trapped Ctrl+C'" 2 echo "This is a test
script~" count=1 while [ $count -le 10 ] do echo "Loop #$count" sleep 1
count=$[ $count + 1 ] done echo "This is the end of the script~" trap - 2 echo
"I just removed the trap"


如上图,当我运行这个脚本的时候,ctrl+c是被trap住的,当脚本运行结束后,ctrl+c就被释放了

3)一个脚本

运行这个脚本会不停的新建以westos+时间组成的文件,当使用ctrl+c命令时,会自动删除所有新建的文件
#!/bin/bash trap "find /tmp -type f -name "westos_*" | xargs rm -f && exit " 2
while true do touch /tmp/westos_$(date +%F-%N-%M-%S) sleep 2 ls -l /tmp/westos*
done