一些redirect的输出被打印在最后

运行一些运行Python脚本的shell脚本,当redirect到tee或文件时,我重新sortingstdout行。

例如,如果我运行shell脚本并获得输出到我的标准输出,我的输出如下所示:

Line1: Starting X Line2: Output of X Line3: Starting Y Line4: Output of Y 

但是,如果我运行相同的脚本并将输出redirect到文件,或者使用tee,那么将会在执行结束时打印来自底层Python脚本的打印语句。

 Line1: Output of X Line2: Output of Y Line3: Starting X Line4: Starting Y 

有什么我可以做,以避免这一点?

可能是Python脚本写入stdout和stderr,而只是将其中的一个redirect到文件或通过tee

要检查哪些输出在哪里:

 ./myscript 2>/dev/null # shows only stdout ./myscript >/dev/null # shows only stderr 

redirect两者:

 ./myscript >myfile 2>&1 # both to myfile ./myscript |& tee ... # both through tee