curl在管道到head命令时出错



这非常有效,没有错误:

$ curl -sSL https://coinbase.com/api/v1/prices/historical
2014-04-27T18:19:17-07:00,430.52
2014-04-27T18:10:24-07:00,436.25
2014-04-27T17:56:57-07:00,436.14
...

这会产生以下错误:

$ curl -sSL https://coinbase.com/api/v1/prices/historical | head -n 1
2014-04-27T18:19:17-07:00,430.52
curl: (23) Failed writing body (0 != 186)

当我管道传输到greptail时,它不会失败,但当我管道发送到head时(即使没有参数),它也会失败。

我得到了我想要的,但它给出了一个错误。最后一个数字(上例中为186)每次都会发生变化。我又跑了三次,分别得了1650、3988和923。

我试着用-B选项运行它。如果有帮助的话,我在OSX 10.9上。我没有~/.curlrc。这是curl --version:的输出

curl 7.30.0 (x86_64-apple-darwin13.0) libcurl/7.30.0 SecureTransport zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IPv6 Largefile NTLM NTLM_WB SSL libz

这里出了什么问题?

headcurl完成对管道的写入之前关闭了管道。您可以使用-N标志禁用curl中的缓冲,使所有输出都在一个大区块中写入管道,这样head将能够对整个响应进行操作:

curl -sNL https://coinbase.com/api/v1/prices/historical | head -n 1

相关内容

  • 没有找到相关文章

最新更新