1

我正在运行具有 STDERR 和 STDOUT 输出的命令管道。我想将两个输出都保存在一个日志文件中。

这是我的尝试:

bash my_script.sh > log.txt   #Only save STDOUT
bash my_script.sh > >(tee log.txt) 2> >(tee log.txt >&2)  #The STDERR overwrite the STDOUT  

我希望你能提供一个简单的解决方案来做到这一点。谢谢你的时间!

4

2 回答 2

3

bash my_script.sh > log.txt 2>&1

其中 2>&1 将标准错误重定向到标准输出

于 2013-08-13T16:54:44.550 回答
3

刚刚怎么样

bash my_script.sh > >(tee log.txt) 2>&1

此外,如果您想在 log.txt 已存在的情况下附加输出,请在 tee 中添加 -a 选项

bash my_script.sh > >(tee -a log.txt) 2>&1

它实际上相当于bash my_script.sh 2>&1 | tee log.txtbash my_script.sh 2>&1 | tee -a log.txt

于 2013-08-13T16:55:46.007 回答