关于linux:如何让cURL不显示进度条?

How do I get cURL to not show the progress bar?

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

我试过-s-silent-s-quiet选项,但都不管用。

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

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

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


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

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

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


在Ubuntu上的curl版本7.22.0和OSX上的7.24.0中,不显示进度但显示错误的解决方案是同时使用-s(--silent-s这样:

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

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


我发现,对于curl 7.18.2,下载进度条并不隐藏:

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

但它是:

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

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