set -o Pipelinefail을 사용할 때 Bash 파이프라인에서 실패한 명령 확인

set -o Pipelinefail을 사용할 때 Bash 파이프라인에서 실패한 명령 확인

set -o pipefail나는 스크립트에서 평소처럼 사용합니다. 이것은 잘 작동하며 다음과 같이 문서화되어 있습니다.

curl ... | jq ... | psql ...

그러나 파이프라인의 어떤 명령이 실제로 전체 프로세스의 실패를 초래하는지 확인할 수 있는 방법이 있습니까?

보다 간결한 로깅만을 목적으로 이 문제를 조사하고 있지만 관련 문서를 찾을 수 없습니다.

답변1

PIPESTATUS내장 배열을 사용하세요 :

true | true | false | true | true
declare -p PIPESTATUS
declare -a PIPESTATUS=([0]="0" [1]="0" [2]="1" [3]="0" [4]="0")

관련 정보