Pode ser que você seja vítima de um problema bash bem conhecido que atinge com frequência make usuários.
Eu ainda não verifiquei o bash 4, mas bash 3 incorretamente faz o jobcontrol dentro dos scripts. Isso geralmente faz com que os makefiles que contêm um loop sobre vários subdiretórios não sejam facilmente eliminados por ^C , porque os subprocessos são executados em grupos de processos separados, mesmo que esses comandos não sejam interativos.
smake inclui uma solução alternativa para /bin/sh sendo bash e encaminha explicitamente SIGINT para o grupo procress do comando atualmente em execução. Mas este é um software escrito em C .
O mesmo não pode ser implementado com shells usuais em scripts, pois não há um comando UNIX padrão para recuperar o grupo de processos de um filho.