Você deve usar trap true 2
ou trap : 2
em vez de trap '' 2
. Isso é o que "ajuda armadilha" em um bash shell diz sobre isso:
If ARG is the null string each SIGNAL_SPEC is ignored by the shell and by the commands it invokes.
Exemplo:
$ cat /tmp/test
#! /bin/sh
trap : INT
cat
echo first cat killed
cat
echo second cat killed
echo done
$ /tmp/test
<press control-C>
^Cfirst cat killed
<press control-C>
^Csecond cat killed
done