bash:将 stdout 和 stderr 重定向(并附加)到文件和终端并获得正确的退出状态

标签 bash stdout stderr tee

要将 stdout 和 stderr 重定向(并追加)到一个文件,同时还要在终端上显示它,我这样做:

command 2>&1 | tee -a file.txt

但是,是否有另一种方法可以让我获得退出状态的准确值?

也就是说,如果我测试$?,我想查看command 的退出状态,而不是tee 的退出状态。

我知道我可以在这里使用 ${PIPESTATUS[0]} 而不是 $?,但我正在寻找另一种不需要检查的解决方案管道状态

最佳答案

也许您可以将 PIPESTATUS 的退出值放入 $?

command 2>&1 | tee -a file.txt ; ( exit ${PIPESTATUS} )

关于bash:将 stdout 和 stderr 重定向(并附加)到文件和终端并获得正确的退出状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2413166/

相关文章:

php - 标准错误流的名称是什么(Apache+php)

linux - 从 bash 或 node 写入终端环境

bash - Trap 命令未检测终端大小调整 (SIGWINCH)

python - bash:根据安装的 python 版本执行不同的操作

c# - 重新同步 Process.RedirectStandardOutput

Python:与 *nix 中正在运行的进程的 STDIN/OUT 交互

bash - 如何将参数传递给 bash?

c - read() 和 write() 将多余的输出发送到 Vim

c - perror() 和 printf() 之间的区别

file - 将 `close` 替换为 `open` `/dev/null` ?