- blogs:
- cles::blog
2012/03/28
コマンドがエラーになった場合にシェルスクリプトを即時に終了させる
sh programmingシェルスクリプトでバッチを組むときに、コマンドがエラーしたら即座に終了させたいということはよくあると思います。これまでは $? を自分で見て終了させる処理を書いていたのですが、 set -e を使うとそれを自動的にやってくれることが分かったのでメモ。ちゃんと man にも書いてありましたね。
man 1 bash
-e Exit immediately if a simple command (see SHELL GRAMMAR above) exits with a non-zero status. The
shell does not exit if the command that fails is part of the command list immediately following a
while or until keyword, part of the test in an if statement, part of a && or || list, or if the com-
mand's return value is being inverted via !. A trap on ERR, if set, is executed before the shell
exits.
例えばこんなスクリプトを書いてみます。
example.sh
#!/bin/bash
set -e
trap 'echo "trap exit"' EXIT
trap 'echo "trap err"' ERR
echo "foo"
false
echo "bar" # ここは実行されない
これを実行するとこんな感じになります。
$ ./example.sh
foo
trap err
trap exit
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/4857
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(93377)
2 . 年次の人間ドックへ(93345)
3 . 福岡銀がデマの投稿者への刑事告訴を検討中(93312)
4 . 三菱鉛筆がラミーを買収(93247)
5 . 2023 年分の確定申告完了!(1つめ)(93235)
2 . 年次の人間ドックへ(93345)
3 . 福岡銀がデマの投稿者への刑事告訴を検討中(93312)
4 . 三菱鉛筆がラミーを買収(93247)
5 . 2023 年分の確定申告完了!(1つめ)(93235)
cles::blogについて
Referrers