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有。
- 埃多克斯一〔0〕在这里对我沉默。您使用的是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 google.com没有进度条,但是curl-s google.com>temp.html有。
- 对于我来说,与curl 7.22.0-3ubuntu4.11(Ubuntu 12.04)和7.35.0-1ubuntu2.2(Ubuntu 14.04)合作。
- 对于任何想了解已安装的curl和libcurl版本的人,使用命令dpkg -l | grep curl。
- 在这种情况下,运行man curl来显示curl的手动页面,然后点击/progress或/hide progress或stop或任何搜索查询以获得您想要的内容。然后你可以得到一个像CHMAC建议的答案。
- @到目前为止,CHMAC在-sS旗上的回答可能是最好的。您是否考虑更改已接受的答案(将帮助像我这样的人快速找到最佳答案)。
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 |
- 我本该想到的。不过,它也会隐藏错误消息。
- 在我的例子中,可以使用/dev/null。
- 很好-这很好。我在Centos6.3上遇到了这个问题,但在其他发行版上没有这个问题——奇怪,但简单简单的解决方法——THX!
- 顺便说一下,如果您不知道,请参阅下面关于2>/dev/null的链接:stackoverflow.com/questions/10508843/what-is-dev-null-21
- 在我看来,这个答案没有用,因为它也隐藏了错误。我更喜欢下面的CHMAC答案。
- 根据Ubuntu14主机上安装curl的手册页,-s将使curl不"显示进度表或错误消息"。(我还没有尝试测试或读取源代码来查看这是否是真的。)
- 哦,哈哈,我想下一个答案是这样的。的S
在Ubuntu上的curl版本7.22.0和OSX上的7.24.0中,不显示进度但显示错误的解决方案是同时使用-s(--silent和-s这样:
1
| curl -ss http://google.com > temp.html |
这对重定向输出> /some/file、管道输出| less和直接输出到终端的我都有效。
- 顺便说一下,stack overflow的markdown实现目前不支持用于代码块的github风格的triple-`;您必须缩进4个空格。
- 好一个!我自己使用-s,所以当我使用var=$(curl -S...)时,它仍然在产生输出。-sS解决了这个问题。
- 对于我的7.35使用-ss消除了进度表,但也消除了通常写入stdout的信息-这是我需要的,因为它包括写入磁盘的文件名,而不是必须在请求中使用的(不同)fileid。似乎没有办法仅仅打败进度表!
- 因为标准误差很重要
- 这应该是公认的答案。请投票表决!
我发现,对于curl 7.18.2,下载进度条并不隐藏:
1
| curl -s http://google.com > temp.html |
但它是:
1
| curl -ss http://google.com > temp.html |
不知道为什么要这样做。使用-o选项尝试-s来设置输出文件,而不是>。