검색해서 해결방법을 찾았습니다여기,하지만반환 상태 코드부분.
보시다시피 서브셸을 사용하고 거기에서 상태 코드를 가져올 수 없으므로 이 답변을 기반으로 다음과 같이 작성하고 싶습니다.
(((cmd; status=$?) | tee stdout.log) 3>&1 1>&2 2>&3 | tee stderr.log) &> all.log
if [ $status -ne 0 ]
then
# do something with stderr.log and stdall.log
fi
물론 내 예에서는 $status
상위 셸에 표시되지 않습니다. 필요에 맞게 어떻게 수정할 수 있나요?