set -o pipefail
set -o pipefail: 파이프라인의 종료 코드를 가장 오른쪽에서 실패한 명령의 종료 코드로 바꾸는 Bash 옵션. 모든 명령이 성공하면 0을 반환한다. 기본 동작에서는 파이프라인의 종료 코드가 마지막 명령의 종료 코드만 따르기 때문에, 중간 명령이 실패해도 마지막 명령이 성공하면 파이프라인 전체가 성공으로 간주된다. 기본 동작과의 차이 기본 동작: false | true echo $? # 0 (마지막 명령인 true의 종료 코드) pipefail 적용: set -o pipefail false | true echo $? # 1 (false의 종료 코드) 왜 필요한가 스크립트에서 중간 명령이 실패해도 마지막 명령(tee, grep, awk 등)이 성공하면 그대로 다음 단계로 넘어가는 경우가 많다....