- 追加された行はこの色です。
- 削除された行はこの色です。
* set -eでエラー処理 [#b2e7afe9]
* eオプションでエラー処理 [#b2e7afe9]
set -eすると、式が非ゼロな終了コードを返した時点で、スクリプトは勝手にexitする。
例えば、
set -e
false
if [ "$?" -ne 0 ]; then
echo error; exit 1;
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」と表示して終了する。