Ctrl+Cを押されると、その時点でプログラムが終了してしまうため、例えばワークファイルなどが残ってしまいます。
しかし、trapコマンドを利用することによりCtrl+Cが押された後の処理を記述することができます。
trapについては、逆引きシェルスクリプト/シグナルを受ける方法でも記述しています。
以下のサンプルスクリプトは/tmpにinterrupt.tmpファイルを作成し、sleep1の無限ループをしています。
Ctrl+Cを押すことにより、final関数が呼びだされinterrupt.tmpを削除し終了します。
#!/bin/bash
trap "final; exit 1" 2
function final {
echo "Ctrl+C pushed."
rm -f /tmp/interrupt.tmp
}
touch /tmp/interrupt.tmp
while :
do
sleep 1
done