我正在运行具有 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
我希望你能提供一个简单的解决方案来做到这一点。谢谢你的时间!
bash my_script.sh > log.txt 2>&1
其中 2>&1 将标准错误重定向到标准输出
刚刚怎么样
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.txt
或bash my_script.sh 2>&1 | tee -a log.txt