하위 명령의 표준 출력을 버퍼링하는 동안 종료 코드 가져오기

하위 명령의 표준 출력을 버퍼링하는 동안 종료 코드 가져오기

명령에서 표준 출력을 얻고 종료 코드도 얻고 싶습니다. 다음을 사용하여 모든 stdout을 버퍼링하거나 stdout을 터미널로 보낼 수 있습니다.

 gp_result="$(git push 2>&1 | tee -a /dev/stdout)"

그런데 하위 명령의 종료 코드를 어떻게 얻을 수 있나요? 이것이 최선의 방법입니까?

gp_result="$(
   (git push 2>&1 | tee -a /dev/stdout)
   exit_code="$?"
   echo
   echo "exit code: $exit_code"
)"

그런 다음 출력을 구문 분석합니까?

관련 정보