進行状況バーを表示しないようにcURLを取得するにはどうすればよいですか?


563

スクリプトでcURLを使用して、プログレスバーが表示されないようにしています。

私が試した-s、-silent、-S、および-quietオプションは、それらのどれも動作しません。

これが私が試した典型的なコマンドです:

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

進行状況バーを取得するのは、ファイルにプッシュするときだけなので、進行状況バーcurl -s http://google.comはありませんが、curl -s http://google.com > temp.htmlあります。


12
curl -s http://google.comここで私は黙っています。どのバージョンのcurlとLinuxを使用していますか?
— Adrian Petrescu、2011

-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をアップグレードする必要があるようです
— derevo

Fedora 15とMac OSX 10.7.1で試しました。また、プログレスバーを取得するのはファイルにプッシュするときだけなので、curl -s google.comにはプログレスバーがありませんが、curl -s google.com > temp.htmlにはあります。
— 2011

1
インストールされているバージョンを確認curlしlibcurlてコマンドを使用したい方dpkg -l | grep curl
— Dimitry K

1
そのような場合は、man curlcurlのマニュアルページを表示するために実行してから、目的の結果を取得するために検索クエリのor /progressまたは/hide progressor stopまたは何かを押します。次に、chmacが提案するような答えを得ることができます。
— ケンジュ

回答:


561
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

31
私はそれを考えるべきだった。ただし、エラーメッセージも非表示になります。
— Tom Zych

1
私の場合、/ dev / nullを使用しても問題ありません。
— 12

いいですね-これはうまくいきます。私はcentOS 6.3で問題を抱えていましたが、他のディストリビューションでは問題がありませんでした-奇妙ですが、単純で簡単な回避策-thx!
— ロス

ところで、およそリンクの下に表示さ2>/dev/nullあなたがわからない場合:stackoverflow.com/questions/10508843/what-is-dev-null-21
— kenju

curlをubuntu 14ホストにインストールするためのmanページによると、-scurlは「進行状況メーターまたはエラーメッセージを表示」しません。(私はそれが本当に本当かどうかを確認するためにソースコードをテストしたり読んだりしていません。)
— David Winiecki

535

Ubuntuのcurlバージョン7.22.0およびOSXの7.24.0では、進行状況を表示せずにエラーを表示するためのソリューションは、-s(--silent)と-S(--show-error)の両方を次のように使用することです。

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

これは、リダイレクト出力> /some/file、パイプ出力| less、およびターミナルへの直接出力の両方で機能します。


3
7.35の場合、-sSを使用するとプログレスメーターが削除されますが、要求に使用する必要がある(異なる)fileidの代わりにディスクに書き込まれるファイル名が含まれているため、標準出力に通常書き込まれる情報も削除されます。一人でプログレスメーターを倒すだけの方法はないようです!
— Jack

48

curl 7.18.2では、ダウンロードの進行状況バーが次のように非表示になっていないことがわかりました。

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

しかしそれは:

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

6

それがなぜそれをしているのかわからない。の代わりに出力ファイルを設定-sする-oオプションを試してください>。


0

MacOS 10.13.6(High Sierra)では、「-ss」オプションが機能します。これは、perl内部ののようなコマンドで特に役立ちます。これはcurl -ss --get {someURL}、ウェブサイトやウェブページのコンテンツを取得するためだけに、LWPやHTTPラッパーよりもはるかに単純です。


-1

しばらく前に、インストールされている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/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.