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

in Categories , , , , , , , , , , last updated August 14, 2009

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 $$”.


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

Here is a sample shell script:

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

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

Share this on (or read 3 comments/add one below):

3 comment

    Have a question? Post it on our forum!