写一个简单的Shell脚本,脚本运行时让Ctrl-C无法中断该shell脚本?

2024-11-26 05:24:57
推荐回答(1个)
回答1:

捕捉信号,然后执行echo显示提示
调用程序处理信号
trap commands signal-list
常见信号
HUP(1) 挂起,通常因终端掉线或用户退出而引发
INT(2) 中断,通常因按下Ctrl+C组合键而引发
QUIT(3) 退出,通常因按下Ctrl+\组合键而引发
ABRT(6) 中止,通常因某些严重的执行错误而引发
ALRM(14) 报警,通常用来处理超时
TERM(15) 终止,通常在系统关机时发送
http://www.lslnet.com/linux/dosc1/65/linux-423392.htm
INT 就是中断信号(linux 中是ctrl-C,SCO unix 中是"del"键)
trap 就是捕捉信号,与所提供的arg联系起来,就是当捕捉到某个信号时执行arg规定的动作。
如文件a:
#!/bin/bash
trap "echo -e \"\nreceive int\n\";exit" INT
while :
do
((i++))
done
由于是死循环,不会退出,按下ctrl-c键后,程序会显示
receive int
并退回$状态
当arg为空时表示忽略后面指出的信号
trap -p
可显示信号关联的命令。请指正。