【发布时间】:2015-02-04 20:22:23
【问题描述】:
我有一个 bash 脚本,它运行一些任务并一路将错误重定向到 /stderr。
这意味着脚本开始于:
exec 2>$TMPDIR/stderr
现在,我唯一想要的是,在脚本完成运行后,我如何取回已写入 stderr 的任何潜在错误?因为,我只想在 bash 运行完所有脚本后才显示错误。
【问题讨论】:
-
cat "$TMPDIR"/stderr最后? -
@j.a.你是对的,但我想把它作为一个错误来回应。 cat 只会将其列为项目列表。有没有办法解决这个问题?
-
如果你想在执行过程中输出和写到
"$TMPDIR"/stderr,你需要将stdout/stderr都重定向到tee。或者如果你真的想要它:exec 2>$TMPDIR/stderr; cat "$TMPDIR"/stderr作为一个命令(或一个接一个) -
以前从未听说过
tee。你能补充更多细节吗? -
有些事情对你有帮助。一个已经提到
tee,另一个是trap(shell 内置),当您的脚本自动结束其生命周期时,您可以使用它来运行一些代码。