获取退出代码,同时缓冲子命令的标准输出

获取退出代码,同时缓冲子命令的标准输出

我想从命令中获取标准输出,同时还获取退出代码。我可以缓冲所有标准输出,也可以使用以下命令将标准输出发送到终端:

 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"
)"

然后解析输出?

相关内容