trap用法

文章介绍了Linuxshell脚本中如何使用trap命令捕获并处理信号,如INT(Ctrl+C)和HUP(挂断),以及如何通过trap防止中断脚本执行。同时,讨论了Ctrl+C、Ctrl+Z、Ctrl+D等控制键的作用,如暂停和终止进程。此外,还展示了如何阻止默认的控制键行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

trap "" IN


例子:
  trap "" INT
while :
do
        read -p "xxxx:" c
        case $c in
                e)
                        break 
        esac
done


屏蔽断开连接
trap "" HUP
加了这个参数,即使ssh断开,脚本依然再跑

kill -19  停止程序,但是不终止程序,类似ctrl+z  SIGSTOP

kill -18  启动程序在后台运行  SIGCONT
kill -20  也是停止程序 SIGTSTP

trap " echo '#####do not use ctrl+z ### '" TSTP
while :
do
        #read -p "xxxx:" c
        echo "1111111"
        sleep 1
        case $c in
                e)
                        break 
        esac
done

触发时 ctrl+c 也失效了 只能kill -9 杀掉


Ctrl-c Kill foreground process  终止前台进程
Ctrl-z Suspend foreground process  挂起前台进程

Ctrl-d Terminate input, or exit shell

没有任何字符串的时候
相当于logout

如果有input 输入的话退出


Ctrl-s Suspend output

任何键盘操作屏幕都不显示


Ctrl-q Resume output

恢复之前键盘上的操作

Ctrl-o Discard output

没有任何字符的时候等价与回车


Ctrl-l Clear screen

trap " echo '####do not use ctrl +c#### '" INT
while :
do
        read -p "xxxx:" c
        case $c in
                e)
                        break
        esac
done


xxxx:^C####do not use ctrl +c#### 
^C####do not use ctrl +c#### 
^C####do not use ctrl +c#### 


trap " echo '#####do not use ctrl+z ### '" TSTP
while :
do
        read -p "xxxx:" c
        #echo "1111111"
        sleep 1
        case $c in
                e)
                        break 
        esac
done


[root@rel7 ~]# sh 7.sh
xxxx:dwwd
xxxx:^Z#####do not use ctrl+z ### 
^C


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值