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 ↓
🐧 3 comments so far... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
Syntax error:
trap 2
should be
trap – 2
Syntax error:
trap 2
should be
trap – 2
or else it will continue to ignore ctrl-c.
is There way to disable ctrl Z too ?