bashに-e
のオプション
#!/bin/bash set -eu
をつけたとしても、パイプラインの左側のコマンドにエラーがある場合に処理が停止しない。
が
pipefailのオプション
set -euo pipefail
を設定してやると
この場合は"hoge"が出力されるが
#!/bin/bash set -eu false | true echo "hoge"
この場合は"hoge"が出力されない
#!/bin/bash set -euo pipefail false | true echo "hoge"