我正在发出一个curl请求,它在控制台中显示html输出,例如

<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /home/domain/public_html/wp-content/themes/explicit/functions/ajax.php:87) in <b>/home/domain/public_html/wp-content/themes/explicit/functions/ajax.php</b> on line <b>149</b><br />......


etc

我需要隐藏这些输出在运行CURL请求时,尝试像这样运行CURL

curl -s 'http://example.com'


,但它仍显示输出,如何隐藏输出?

感谢

评论

在末尾附加> / dev / null。在mywiki.wooledge.org/FileDescriptor?highlight=%28FD%29上了解有关文件描述符的更多信息

#1 楼

man curl开始


-s,--silent
静默或安静模式。不要显示进度表或错误消息。使Curl静音。除非您将其重定向,否则它仍将输出您想要的数据,甚至可能将其输出到终端机/标准输出



因此,如果您不需要任何数据输出用途:

curl -s 'http://example.com' > /dev/null


评论


如果只想出错,则添加-S标志curl -s -S'example.com'> / dev / null

–曹刚扎
16-11-3在11:55



注意,您不能执行curl -o / dev / null;它将引发写入错误。

–基思·泰勒(Keith Tyler)
17年2月10日在22:12

但是您可以执行curl ... 2> / dev / null仅重定向stderr。

–杰西·奇斯霍尔姆(Jesse Chisholm)
17年9月14日在20:23

@KeithTyler curl https://www.google.com -o / dev / null成功,对我来说没有错误。我正在使用curl-7.58.0。

–x-yuri
18-4-4在13:29

我认为这意味着应该使用wget而不是curl来下载文件。

–Vishrant
19年1月18日在21:35

#2 楼

这对我来说看起来更优雅:

curl --silent --output /dev/null http://example.com


此外,如果您想查看HTTP代码:

curl --write-out '%{http_code}' --silent --output /dev/null http://example.com


完整的文档在这里。

评论


如果仍然希望显示错误,则也可以添加--show-error参数。

–西蒙东
18 Mar 26 '18在23:30

即使使用-sS它仍然为我显示标题:(

– Freedo
19年8月27日在5:59

#3 楼

隐藏cURL输出的一种方法是使用运算符&>将stdout和stderr都重定向到/dev/null
curl http://example.com &> /dev/null