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」と表示して終了する。 |
|