我想将所有错误保存在一个文件(output.log
)中,而不覆盖它,然后打印该文件。
script ./src/ 2>&1 | tee output.log
假设您想要追加而不是覆盖:
script ./src/ 2> >(tee -a /tmp/error)
这只发送错误到/tmp/error
,而不是你的建议,它发送所有的错误文件。>(command)
机制运行命令时,stdin
指向它所在的文件(在Linux中,这是通过/dev/fd/X
完成的)。
假设您想要中止而不是覆盖:
set -o noclobber
script ./src/ 2> /tmp/error
如果/tmp/error
存在,这将标记一个错误。
如果你真的想同时捕获stdout
和stderr
,请使用2>&1
和>
。