我正在尝试在脚本中使用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>
答案 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