![Ash의 파이프라인에서 첫 번째 명령의 오류 코드 가져오기](https://linux55.com/image/136725/Ash%EC%9D%98%20%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8%EC%97%90%EC%84%9C%20%EC%B2%AB%20%EB%B2%88%EC%A7%B8%20%EB%AA%85%EB%A0%B9%EC%9D%98%20%EC%98%A4%EB%A5%98%20%EC%BD%94%EB%93%9C%20%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0.png)
나는 보통 wget
다음과 같이 두 개의 FIFO에 대용량 파일을 다운로드합니다.
wget <wget-args> -O - | tee -a "$fifo1" >> "$fifo2"
wget
실패 시 오류 코드를 검색하고 싶습니다 .
set -o pipefail
파이프라인에서 가장 오른쪽 명령의 오류 코드를 반환하므로 오류 코드가 어디서 오는지 확인할 수 없습니다 wget
.
그럼 잿더미 속에서 어떻게 이 일을 할 수 있을까요?
답변1
$?
반환 코드를 wget에서 반환 코드가 포함된 파일로 리디렉션하기만 하면 됩니다.
$ (wget <wget-args> -O - ; echo $? > result) | tee -a "$fifo1" >> "$fifo2"
여기의 파일 결과에는 작업에 대한 상태 코드가 포함됩니다.
$ cat result
0