Ash의 파이프라인에서 첫 번째 명령의 오류 코드 가져오기

Ash의 파이프라인에서 첫 번째 명령의 오류 코드 가져오기

나는 보통 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

관련 정보