Linux BASH下禁用Ctrl+C

Ctrl+C可以终止当前程序的执行,如果不希望Ctrl+C起作用,或者插入自己的处理程序,可以使用stty禁用该功能,或者使用trap捕获该信号,插入处理程序。
  1. 禁用
    在bash脚本中插入如下命令即可:
    stty intr undef
    请注意,该命令同时把整个终端的设置都改掉,导致Ctrl+C对于其它程序也不能用,所以在你的程序末尾还要将Ctrl+C恢复,使用如下命令:
    stty intr ^c
  2. 捕获
    首先定义一个处理函数,比如cleans,用于捕获信号后的处理。
    cleans() {
            echo "user cancelled, exit... "
             exit 1 #如果不希望退出的,该行就不用
    }
    然后使用trap捕获信号
    trap "{ cleans;  }" 1 2 3 6 9 15
    花括号中是处理函数的名称,后面的数字是信号量的代号。使用man 7 signal命令可以查看各种信号量的代码,其中中断信号就是2.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值