Можно ли перехватить сигнал, скажем, SIGINT, но продолжить работу до определенной точки в сценарии? Псевдокод:
done=0
while [ $done -eq 0 ]; do
trap 'done=1' # remember signal, but continue
# important stuff that can't be interrupted
# in code that does not handle signals
...
done