我遇到的问题是我无法完全重定向可执行文件的输出。为了便于讨论,我们假设可执行文件是printnames.exe
。
如果我printnames.exe
(没有重定向),命令窗口中会显示以下输出:
Adam
Tim
Jesse
Sean
但是如果我printnames.exe > myfile.txt
,命令窗口会显示:
Tim
Sean
... myfile.txt
的内容是:
Adam
Jesse
这怎么可能?代码中的内容会导致这种行为?重定向操作符不应该重定向所有输出吗?
答案 0 :(得分:5)
这怎么可能?
您有两个输出流。
代码中的哪些内容会导致此类行为?
写入标准输出并写入标准错误。
重定向操作符不应该重定向所有输出吗?
没有。默认重定向适用于标准输出。
使用2>
重定向标准错误。
http://www.gnu.org/software/bash/manual/bashref.html#Redirections