我想将标准输出和标准错误输出重定向到同一个文件:
./foo.sh >stdout_and_stderr.txt 2>&1
同时将stderr重定向到另一个文件。我尝试了这样的变化:
./foo.sh >stdout_and_stderr.txt 2>stderr.txt 2>&1
但是在bash中,它们都不能完全正常工作,例如,stderr只被重定向到一个输出文件中。重要的是,合并文件要保留第一个代码段的行顺序,因此不能将其转储到不同的文件中,然后再进行合并。
在bash中是否有一个简洁的解决方案?
tee
进行管道处理,但由于缓冲等原因,生成的交错结果很可能与终端屏幕上看到的不同。 - Jonathan Leffler./foo.sh 2>&1 >file
)将错误发送到原始标准输出,并将标准输出(但不是重定向的标准错误)发送到文件中。如果您想要在file
中同时包含两者,则必须使用./foo.sh >file 2>&1
,反转重定向的顺序。它们从左到右进行解释。 - Jonathan Leffler