Як мені отримати CURL, щоб не відображати панель прогресу?


562

Я намагаюся використовувати 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 ви працюєте?
Адріан Петреску

-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 виглядає, що вам потрібно оновити свою завивку
derevo

Я спробував це на Fedora 15 та Mac OSX 10.7.1. Крім того, я отримую панель прогресу лише під час натискання на файл, тому curl -s google.com не має панелі прогресу, але curl -s google.com > temp.html робить.
adammenges

1
Для всіх, хто хоче з'ясувати версію встановленої curlта libcurlвикористовувати командиdpkg -l | grep curl
Dimitry K

1
В такому випадку запустіть man curlдля показу вручну сторінки локон, а потім натисніть /progressабо /hide progressчи stopабо що - то для пошуку запит , щоб отримати те , що ви хочете. Тоді ви можете отримати відповідь, як пропонує chmac.
кенджу

Відповіді:


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

працює для curl версії 7.19.5 на Ubuntu 9.10 (без панелі прогресу). Але якщо з якоїсь причини, яка не працює на вашій платформі, ви завжди можете перенаправити stderr на / dev / null:

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

31
Я мав би подумати про це. Однак він також приховуватиме повідомлення про помилки.
Tom Zych

1
У моєму випадку це нормально використовувати / dev / null.
adammenges

Приємно - це чудово працює. У мене була проблема на centOS 6.3, але не на інших дистрибутивах - химерних, але простих простих способів вирішення - thx!
Росс

до речі, дивіться нижче посилання про , 2>/dev/nullякщо ви не знаєте: stackoverflow.com/questions/10508843/what-is-dev-null-21
kenju

Згідно з довідковою сторінкою для установки curl на хості ubuntu 14, -sзмусить curl не "показувати метр прогресу або повідомлення про помилки ". (Я не пробував тестування чи читання вихідного коду, щоб побачити, чи справді це правда.)
David Winiecki

535

У curl версії 7.22.0 на Ubuntu та 7.24.0 на OSX рішення не показувати прогрес, а показувати помилки - використовувати як -s( --silent), так і -S( --show-error) так:

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

Це працює як для перенаправленого виводу > /some/file, трубопроводу, так | lessі для виходу безпосередньо на термінал.


3
Для мого 7,35, використовуючи -sS, виключає вимірювач прогресу, але ТАКОЖ виключає інформацію, яка зазвичай записується в stdout - що мені потрібно, оскільки вона включає ім'я файлу, записане на диск, а не (інший) файлід, який повинен бути використаний у запиті. Здається, немає способу просто перемогти метр прогресу поодинці!
Джек

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/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.