サブコマンドの標準出力のバッファリング中に終了コードを取得する

サブコマンドの標準出力のバッファリング中に終了コードを取得する

コマンドから標準出力を取得し、終了コードも取得したいと思います。以下を使用して、すべての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"
)"

その後、出力を解析しますか?

関連情報