我试图在脚本中使用cURL,并让它不显示进度条。

我试过-s, -silent, -s和-quiet选项,但都没用。

下面是我试过的一个典型的命令:

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

我只得到进度条时,它推到一个文件,所以curl -s http://google.com没有进度条,但curl -s http://google.com > temp.html。


当前回答

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

其他回答

不知道为什么会这样。尝试使用-s和-o选项来设置输出文件而不是>。

自从curl 7.67.0(2019-11-06)以来,就有了-no-progress-meter,它只做这个,没有其他的。从手册页:

——no-progress-meter 选项,以关闭进度仪表输出没有静音或 否则会影响像-s这样的警告和信息消息, ——沉默。 请注意,这是记录的否定选项名称。你可以 因此使用——progress-meter再次启用进度表。 参见-v,——verbose和-s,——silent。7.67.0新增。

它在Ubuntu≥20.04和Debian≥11 (Bullseye)版本中可用。

有关curl的详细选项的历史,您可以阅读Daniel Stenberg的博客文章。

这可能会有所帮助。

curl 'http://example.com' > /dev/null
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

在macOS 10.13.6 (High Sierra)操作系统下,-sS选项有效。它在Perl中特别有用,在像curl -sS——get {someURL}这样的命令中,坦率地说,它比任何LWP或HTTP包装器都要简单得多,只用于获取网站或网页的内容。