Bash Shell Scripting Disable Control-C [ CTRL+C ] Keys

I want to disable Control-C while running shell bash script program under UNIX / Linux like operating systems. How do I disable Control-C?

You need to use the trap command which can enable or disable keyboard keys such as Crtl-C. SIGINT is Crtl-C and it is represented using number 2. Signal names are case insensitive and the SIG prefix is optional. trap -l prints list of signal names and their corresponding numbers. Note that a signal can be sent to the shell with “kill -signal $$”.

Syntax

# Signal 2 is Ctrl+C
# Okay disable it:
trap '' 2  
command1
command2
command3
# Enable Ctrl+C
trap 2

Here is a sample shell script:

#!/bin/bash
trap '' 2 
echo "This is a test. Hit [Ctrl+C] to test it..."
sleep 20
trap 2

🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 3 comments so far... add one

CategoryList of Unix and Linux commands
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
3 comments… add one
  • PFudd Jul 30, 2012 @ 19:01

    Syntax error:
    trap 2
    should be
    trap – 2

  • PFudd Jul 30, 2012 @ 19:05

    Syntax error:
    trap 2
    should be
    trap – 2
    or else it will continue to ignore ctrl-c.

  • Rome May 6, 2017 @ 4:42

    is There way to disable ctrl Z too ?

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Problem posting comment? Email me @ webmaster@cyberciti.biz