#navi(../)
* Ctrl+Cを押された時、終了処理を実行したい [#fbe43d60]
Ctrl+Cを押されると、その時点でプログラムが終了してしまうため、例えばワークファイルなどが残ってしまいます。~
しかし、trapコマンドを利用することによりCtrl+Cが押された後の処理を記述することができます。~
trapについては、[[逆引きシェルスクリプト/シグナルを受ける方法]]でも記述しています。
#br
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
** サンプルスクリプト [#aa242a14]
#ref(interrupt.sh)
以下のサンプルスクリプトは/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
#br
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
#br