我正在运行具有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
我希望你能提供一个简单的解决方案来做到这一点。 谢谢你的时间!
答案 0 :(得分:3)
bash my_script.sh> log.txt 2>& 1
其中2>& 1将stderr重定向到stdout
答案 1 :(得分: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.txt
或bash my_script.sh 2>&1 | tee -a log.txt