Bash で、パイプの途中のエラーコードを取る

システム変数${PIPESTATUS[X]}を使う。

$ exit 1 | exit 2 | exit 3 | exit 0
$ echo ${PIPESTATUS[@]}
1 2 3 0

ちなみに、Bash では正常終了のコードは0、異常終了は1以上。

広告