如何让cURL不显示进度条?

时间:2011-09-10 18:30:50

标签: linux bash unix scripting curl

我正在尝试在脚本中使用cURL并将其转到 而不是 显示进度条。

我已尝试过-s-silent-S-quiet选项,但这些选项均无效。

这是我尝试过的典型命令:

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

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

8 个答案:

答案 0 :(得分:487)

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

答案 1 :(得分:470)

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

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

这适用于重定向输出> /some/file,管道输出| less,并直接输出到终端。

答案 2 :(得分:42)

我发现使用curl 7.18.2时,下载进度条不会隐藏:

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

但它是:

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

答案 3 :(得分:13)

自 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 (Bullseye) 中可用。

有关 curl 详细选项的一些历史,您可以阅读 Daniel Stenberg's blog post

答案 4 :(得分:6)

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

答案 5 :(得分:0)

前段时间写了一个简单的脚本来抓取搜索安装的特定版本的jdk的示例:

#!/bin/bash
REPO_TAG_URL=$1

SEARCH=`curl -s $REPO_TAG_URL`
NEXT_PAGE=`echo $SEARCH | jq -r .next`

echo $SEARCH | jq '.results[].name'

while [[ $NEXT_PAGE != 'null' ]]; do
    SEARCH=`curl -s $NEXT_PAGE`
    NEXT_PAGE=`echo $SEARCH | jq -r .next`
    echo $SEARCH | jq '.results[].name'
done

echo "Thats all folks"

您可以这样使用它:./script.sh https://registry.hub.docker.com/v2/repositories/library/tomcat/tags/

答案 6 :(得分:0)

在MacOS 10.13.6(高Sierra)上,“-ss”选项有效。在perl内,它在curl -ss --get {someURL}之类的命令中特别有用,坦率地说,它比任何LWP或HTTP包装器都要简单得多,仅用于获取网站或网页的内容。

答案 7 :(得分:0)

这可能有帮助。

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