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"