回答:
これを行うには、SIGINTを受け取ったときに呼び出すサブルーチンを作成し、実行する必要がありますtrap 'subroutinename' INT。
例:
#!/bin/bash
int_handler()
{
echo "Interrupted."
# Kill the parent process of the script.
kill $PPID
exit 1
}
trap 'int_handler' INT
while true; do
sleep 1
echo "I'm still alive!"
done
# We never reach this part.
exit 0
EXIT、スクリプトの停止方法に関係なく、スクリプトの終了時にいつでも実行したいものがある場合にトラップすることができます。(KILLもちろん例外。)
bgたり、終了したり、フォアグラウンドで続行したりできfgます。bashのマンページのセクションを参照してくださいJOB CONTROL。