unix 如何让cURL不显示进度条?

7hiiyaii  于 2022-11-04  发布在  Unix
关注(0)|答案(8)|浏览(240)

我尝试在脚本中使用cURL,并让它***不***显示进度条。
我已经尝试了-s-silent-S-quiet选项,但它们都不起作用。
下面是我尝试过的一个典型命令:

curl -s http://google.com > temp.html

我只在将其推送到文件时得到进度条,因此curl -s http://google.com没有进度条,但curl -s http://google.com > temp.html有。

sauutmhj

sauutmhj1#

curl -s http://google.com > temp.html

可以在Ubuntu 9.10上运行curl版本7.19.5(没有进度条)。但是如果由于某种原因,它在您的平台上不起作用,您可以将stderr重定向到/dev/null:

curl  http://google.com 2>/dev/null > temp.html
4jb9z9bj

4jb9z9bj2#

在Ubuntu上的curl版本7.22.0和OSX上的curl版本7.24.0中,不显示进度显示错误的解决方案是同时使用-s--silent)和-S--show-error),如下所示:

curl -sS http://google.com > temp.html

这对重定向输出> /some/file、管道输出| less和直接输出到我的终端都有效。

更新:自curl 7.67.0以来,有一个新的选项--no-progress-meter,它正好完成了这一任务,没有其他功能,请参见clonejo's answer了解更多详细信息。

suzh9iv8

suzh9iv83#

我发现curl 7.18.2的下载进度条没有隐藏:

curl -s http://google.com > temp.html

但它与:

curl -ss http://google.com > temp.html
t5zmwmid

t5zmwmid4#

自curl 7.67.0(2019-11-06)以来,就有了**--no-progress-meter**,它完全可以做到这一点,除此之外没有其他功能。

--no-progress-meter
         Option to switch off the progress meter output without muting or
         otherwise affecting warning and informational messages like  -s,
         --silent does.

         Note  that  this  is the negated option name documented. You can
         thus use --progress-meter to enable the progress meter again.

         See also -v, --verbose and -s, --silent. Added in 7.67.0.

它在Ubuntu ≥20.04和Debian ≥11(靶心)中可用。
要了解curl的verbosity选项的历史,可以阅读Daniel Stenberg's blog post

hs1rzwqc

hs1rzwqc5#

不确定为什么会这样。尝试使用-o选项设置-s,而不是>

yzxexxkh

yzxexxkh6#

这可能有帮助..

curl 'http://example.com' > /dev/null
xxslljrj

xxslljrj7#

在macOS 10.13.6(High Sierra)上,-sS选项是有效的,它在Perl中特别有用,比如curl -sS --get {someURL},坦白说,它比任何LWP或HTTP Package 器都简单,只需要获取网站或网页的内容。

cbwuti44

cbwuti448#

在嵌入到另一个脚本中时,有什么建议吗?
第一个
我环顾四周,没有看到这样的东西:

export CURL_SILENCE=true; curl host/my.sh | sh

相关问题