eオプションでエラー処理

set -eすると、式が非ゼロな終了コードを返した時点で、スクリプトは勝手にexitする。 例えば、

set -e
false
if [ "$?" -ne 0 ]; then
   echo error; exit 1;
fi
echo done

は、実行すると何も表示せずに終了する。これが下のようにset +eなら、

set +e
false
if [ "$?" -ne 0 ]; then
    echo error; exit 1;
fi
echo done

「error」と表示して終了する。なお、set -eすると$?を使ったエラー処理が出来なくなるので、代わりに下のようにしてエラーを補足する。

set -e
false || { echo error; exit 1; }
set +e
false || { echo error; exit 1; }

上のようにすると、いずれも「error」と表示して終了する。


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

Last-modified: 2012-09-24 (月) 23:50:28 (2212d)