このエントリーをはてなブックマークに追加


Ctrl+Cを押された時、終了処理を実行したい

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
 

 

添付ファイル: fileinterrupt.sh 394件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:27:09