Вы должны использовать trap true 2
или trap : 2
вместо trap '' 2
. Вот что говорит об этом «help trap» в оболочке bash:
If ARG is the null string each SIGNAL_SPEC is ignored by the shell and by the commands it invokes.
Пример:
$ 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