はい!今やってます!

Work Pertly, Live Idly

パイプラインの左側でエラーが発生したら処理を止めたい

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"