Linux 如何使cURL不显示进度条?

Linux 如何使cURL不显示进度条?,linux,bash,unix,scripting,curl,Linux,Bash,Unix,Scripting,Curl,我试图在脚本中使用cURL,并让它显示进度条 我尝试了-s、-silent、-s和-quiet选项,但都不起作用 下面是我尝试过的一个典型命令: curl -s http://google.com > temp.html 我只在将进度条推送到文件时才获得进度条,因此curl-shttp://google.com没有进度条,但是curl-shttp://google.com >temp.html确实如此。不确定它为什么这样做。使用-o选项尝试-s,以设置输出文件,而不是 curl -s h

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

我尝试了
-s
-silent
-s
-quiet
选项,但都不起作用

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

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

我只在将进度条推送到文件时才获得进度条,因此
curl-shttp://google.com
没有进度条,但是
curl-shttp://google.com >temp.html
确实如此。

不确定它为什么这样做。使用
-o
选项尝试
-s
,以设置输出文件,而不是

curl -s http://google.com > temp.html
适用于Ubuntu9.10上的curl版本7.19.5(无进度条)。但是,如果由于某种原因在您的平台上不起作用,您可以始终将stderr重定向到/dev/null:

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

我发现在curl 7.18.2中,下载进度条并没有隐藏:

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

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

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

这适用于重定向输出
/some/file
、管道输出
| less
,以及为我直接输出到终端

更新:自curl 7.67.0以来,有一个新选项
——无进度表
,该选项只执行此操作,其他功能不执行。有关更多详细信息,请参阅。

在MacOS 10.13.6(High Sierra)上,'-ss'选项起作用。它在perl内部尤其有用,在像
curl-ss--get{someURL}
这样的命令中,坦白地说,对于仅仅获取网站或网页的内容来说,它比任何LWP或HTTP包装器都要简单得多

这可能会有帮助

curl 'http://example.com' > /dev/null
自curl(2019-11-06)以来,没有进度表,它只做这一点,其他什么都没有。从手册页:

它在Ubuntu中提供≥20.04和Debian≥11(斗牛士)


有关curl的详细选项的一些历史,您可以阅读。

curl-shttp://google.com
在这里对我来说是沉默的。你使用的是哪个版本的curl和Linux?-s在curl 7.21.0(i686 pc-Linux-gnu)libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18和curl 7.19.5(i386-apple-darwin9.7.0)libcurl/7.19.5 zlib/1.2.3中对我来说效果很好,看起来你需要升级你的curl我已经在Fedora 15和Mac OSX 10.7.1上试用过了。此外,我只在将其推送到文件时才获得进度条,因此curl-s没有进度条,但是curl-s>temp.html有进度条。对于任何想要了解已安装
curl
libcurl
版本的人,请使用命令
dpkg-l | grep curl
在这种情况下,运行
man curl
以显示curl的手动页面,然后点击
/progress
/hide progress
stop
或任何搜索查询以获得所需内容。然后你可以得到一个像chmac建议的答案。我应该想到这一点。不过,它也会隐藏错误消息。在我的例子中,可以使用/dev/null.Nice-这非常有用。我在centOS 6.3上遇到了这个问题,但在其他发行版上没有——奇怪,但简单易行——thx!顺便说一下,如果您不知道,请参阅下面关于
2>/dev/null
的链接:根据ubuntu 14主机上安装curl的手册页,
-s
将使curl不“显示进度表或错误消息”。(我还没有试着测试或阅读源代码,看看这是否真的是真的。)对于我的7.35,使用-sS消除了进度表,但也消除了通常写入stdout的信息——这是我需要的,因为它包括写入磁盘的文件名,而不是请求中必须使用的(不同的)fileid。似乎没有办法仅仅打败进度表@Jack因为curl 7.67.0存在
--无进度表
,请参阅。请再次阅读问题:OP希望将结果重定向到文件中<代码>>/dev/null将放弃它。正如已经接受的答案中提到的,
2>/dev/null
(重定向stderr)将隐藏进度条。
curl 'http://example.com' > /dev/null
   --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.