【发布时间】:2014-02-21 17:44:40
【问题描述】:
我正在运行一个 python 脚本,当我在详细模式下运行它时会产生某些输出。当我将输出传递给 less 实用程序时,输出的顺序不同。作为参考,脚本(如果不完全正确的话)非常接近:
http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py
具体来说,我收到“以下字段的数据”消息,当我运行它而不将输出传送到 less 时,此消息最后出现。当我将输出传递到 less 时,输出神秘地首先出现。
谁能解释一下?
我已确定错误消息发送到 stderr,而详细消息发送到 stdout。但是,即使我这样做:
./svnfixversion ./ 1.5 --verbose 2>&1 | less
输出与我刚刚离开 | 时不同较少的。如果 stderr 被重定向到 stdout,不应该少保留顺序吗?
【问题讨论】:
-
less确实保留了它收到的订单;但是,在写入管道时,不能保证 shell 如何交错标准错误和标准输出。