#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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS