パイプラインでエラーになった時にスクリプトを止めるpipefail指定
bashの最初の方に、set -e して、スクリプト内にエラーがあったら止める、としているのですが、
なんか止まらないで変な挙動をしているものを発見。
調べたら、パイプ処理でこけてるのに、その後も頑張っちゃっていました。
設定)
set -eu
-e=エラーになったらこける
-u=パラメータ展開中に未設定の場合こける
ということで、パイプでエラーのときもコケル設定を追加
set -o pipefail
ちなみにどんなものがセットできるのか調べるときは、コマンドライン上で
set -o
と実行すると、一覧が出てきます。
なんだか色々設定できるものがある。
参考:
https://blog.ueda.tech/?p=5953
http://www.atmarkit.co.jp/ait/articles/1805/10/news023.html
https://qiita.com/progrhyme/items/6e522d83de3c94aadec9
コメント