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

by on August 14, 2006 · 2 comments· LAST UPDATED August 14, 2009

in , ,

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
TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 2 comments… read them below or add one }

1 PFudd July 30, 2012 at 7:01 pm

Syntax error:
trap 2
should be
trap – 2

Reply

2 PFudd July 30, 2012 at 7:05 pm

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

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , ,

Previous Faq:

Next Faq: