While waiting for read builtin to complete, bash executes signal handlers
in a subshell where signals are ignored. See below.

$ foo() { trap foo INT; read; }
$ set -x
$ foo
+ foo
+ trap foo INT
+ read
^C++ foo
++ trap foo INT
++ read
^C^C^C
(the only way to exit is tapping enter twice; i.e finishing both reads)

dash and mksh interrupts read and executes handler in CEE, zsh does
something similar to bash. Is this a bug or an undocumented feature?




-- 
Oğuz

Reply via email to