Bash ignoring SIGINT trap when 'select' loop is running
3
votes
2
answers
2342
views
When i use 'trap' combined with select loop, namely when i try to hit CTRL+C to break out while options are displayed, it will just print ^C in terminal. If i remove 'trap' from script it will normally exit out, that is it will accept CTRL+C.
I've tested this on two different versions of bash (One shipped with CentOS and one shipped with Fedora), and i have an issue with the one from Fedora (4.4.23(1)-release). Bash version 4.2.46(2)-release that is shipped with CentOS seems to work fine. I've also tested this on local terminal and remote (via ssh). And problem is always on Fedora side.
I will post code to see what I'm talking about
This one doesn't work:
#!/bin/bash
trap exit SIGINT
select opt in One Two Three; do
break
done
If i were to remove the entire 'trap exit SIGINT' line, it will work fine and accept CTRL+C without issues.
Any ideas how to fix or bypass this ?
Asked by Marko Todoric
(437 rep)
Apr 19, 2019, 08:41 PM
Last activity: Apr 10, 2020, 06:43 PM
Last activity: Apr 10, 2020, 06:43 PM