将标准输出重定向到不起作用的文件

新手上路,请多包涵

我有一个使用子进程来获取 HTML 的脚本:

 misha@misha-K42Jr:~/git/domain_classifier$ python webkit_retrieve.py error-cut.txt html/error -N 5
http://kurabo.co.jp HostNotFoundError
http://monarch.com HostNotFoundError
http://nssmgmt.com HostNotFoundError
http://sbcglobal.net HostNotFoundError
http://dynamixcorp.com SslHandshakeFailedError
http://groupe-synox.com RemoteHostClosedError
QFont::setPixelSize: Pixel size <= 0 (0)
http://www.cnn.com NoError
http://pacbell.net TimeoutError

如果我运行相同的脚本,但将输出重定向到一个文件,我在输出中什么也得不到:

 misha@misha-K42Jr:~/git/domain_classifier$ python webkit_retrieve.py error-cut.txt html/error -N 5 > stdout.txt
QFont::setPixelSize: Pixel size <= 0 (0)
misha@misha-K42Jr:~/git/domain_classifier$ cat stdout.txt
misha@misha-K42Jr:~/git/domain_classifier$

为什么输出为空?它不应该包含在第一种情况下打印到 stdout 的相同内容吗?

问题不在于合并 stdout 和 stderr,而是为什么重定向的 stdout 会产生一个空文件

原文由 mpenkov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 468
1 个回答

使用 &> 重定向,这应该重定向 stdoutstderr 到指定文件

原文由 Saddam Abu Ghaida 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题