Linux BASH下禁用Ctrl+C

简介:     Ctrl+C可以终止当前程序的执行,如果不希望Ctrl+C起作用,或者插入自己的处理程序,可以使用stty禁用该功能,或者使用trap捕获该信号,插入处理程序。禁用在bash脚本中插入如下命令即可:stty intr undef请注意,该命令同时把整个终端的设置都改掉,导致Ctrl+C对于其它程序也不能用,所以在你的程序末尾还要将Ctrl+C恢复,使用如下命令:stty intr ^c捕获首先定义一个处理函数,比如cleans,用于捕获信号后的处理。
    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.
    http://chyd96.blog.163.com/blog/static/62706076201012642227509/
目录
相关文章
|
存储 Shell Linux
Linux Bash 脚本中的 IFS 是什么?
【4月更文挑战第25天】
262 0
Linux Bash 脚本中的 IFS 是什么?
|
10月前
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
|
存储 Shell Linux
Linux|创建和使用 Bash 别名
Linux|创建和使用 Bash 别名
|
11月前
|
Unix Shell Linux
在Linux中,什么是 BASH?
在Linux中,什么是 BASH?
|
安全 小程序 Linux
Linux中信号是什么?Ctrl + c后到底为什么会中断程序?
信号在进程的学习中是一个非常好用的存在,它是软件层次上对中断机制的一种模拟,是异步通信方式,同时也可以用来检测用户空间到底发生了什么情况,然后系统知道后就可以做出相应的对策。
374 6
|
11月前
|
Shell Linux
在Linux中,哪⼀个bash内置命令能够进行数学运算?
在Linux中,哪⼀个bash内置命令能够进行数学运算?
|
11月前
|
缓存 Shell Linux
在Linux中,bash shell 中的 hash 命令有什么作用?
在Linux中,bash shell 中的 hash 命令有什么作用?
|
11月前
|
人工智能 物联网 Shell
在Linux中,BASH 和 DOS之间的区别是什么?
在Linux中,BASH 和 DOS之间的区别是什么?
|
11月前
|
Unix Shell Linux
在Linux中,什么是Bash脚本,并且如何使用它。
在Linux中,什么是Bash脚本,并且如何使用它。
|
11月前
|
Shell Linux
在Linux中,使用bash shell实现条件判断和循环结构的例子是什么样的?
在Linux中,使用bash shell实现条件判断和循环结构的例子是什么样的?