首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一些重定向输出在最后被打印出来。

一些重定向输出在最后被打印出来。
EN

Server Fault用户
提问于 2016-10-19 09:26:49
回答 1查看 54关注 0票数 1

运行一些运行Python脚本的shell脚本,当重定向到tee或文件时,我会得到stdout行的重新排序。

例如,如果运行shell脚本并将输出输出到我的stdout,则输出如下:

代码语言:javascript
复制
Line1: Starting X 
Line2: Output of X 
Line3: Starting Y 
Line4: Output of Y

但是,如果我运行相同的脚本并将输出重定向到文件,或者使用tee,那么来自底层Python脚本的print语句将在执行的最后被打印出来。

代码语言:javascript
复制
Line1: Output of X
Line2: Output of Y
Line3: Starting X
Line4: Starting Y

有什么我能避免的吗?

EN

回答 1

Server Fault用户

发布于 2016-10-19 17:15:24

它可能是Python脚本同时写入stdout和stderr,而您只重定向其中一个(到一个文件或通过tee)。

若要检查输出的内容,请执行以下操作:

代码语言:javascript
复制
./myscript 2>/dev/null    # shows only stdout
./myscript >/dev/null     # shows only stderr

改变这两个方面的方向:

代码语言:javascript
复制
./myscript >myfile 2>&1   # both to myfile
./myscript |& tee ...     # both through tee
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/809922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档