Как мне заставить CURL не показывать индикатор выполнения?

442

Я пытаюсь использовать cURL в script и получить его не, показывая индикатор выполнения.

Я пробовал опции -s, -silent, -s и -quiet, но никто из них не работает.

Вот типичная команда, которую я пробовал:

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

Я только получаю индикатор выполнения при нажатии его в файл, поэтому curl -s http://google.com не имеет индикатор выполнения, но curl -s http://google.com > temp.html делает.

  • 11
    curl -s http://google.com молчит за меня здесь. На какой версии curl и Linux вы работаете?
  • 0
    -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
Показать ещё 5 комментариев
Теги:
curl
scripting

6 ответов

440
Лучший ответ
curl -s http://google.com > temp.html

работает для завивки версии 7.19.5 на Ubuntu 9.10 (нет индикатора выполнения). Но если по какой-то причине это не работает на вашей платформе, вы всегда можете перенаправить stderr в /dev/null:

curl  http://google.com 2>/dev/null > temp.html
  • 25
    Я должен был подумать об этом. Тем не менее, он также будет скрывать сообщения об ошибках.
  • 1
    В моем случае это нормально использовать / dev / null.
Показать ещё 5 комментариев
443

В curl версии 7.22.0 в Ubuntu и 7.24.0 в OSX решение не показывать прогресс, а отображать ошибки состоит в том, чтобы использовать как -s (--silent), так и -s (--show-error) вот так:

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

Это работает как для перенаправленного вывода >/some/file, так и для piped output | less | less и выводит прямо в терминал для меня.

  • 2
  • 2
    Хороший! Я использовал -S по себе, поэтому, когда я делал var=$(curl -S...) он все еще производил вывод. -sS решил , что.
Показать ещё 3 комментария
39

Я обнаружил, что с curl 7.18.2 индикатор выполнения загрузки не скрывается:

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

но это с помощью:

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

Это работает для curl 7.22.0 на Ubuntu 12.04:

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

На самом деле он также работает с любым количеством 's'. Вы можете написать:

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

и эффект будет таким же =)

6

Не знаю, почему это так. Попробуйте -s с опцией -o установить выходной файл вместо >.

0

Я загрузил с -s & -o чтобы установить вывод файла на Mac OSX 10.6.8, и не вижу индикатор выполнения.
Не имеет никакого значения для скорости загрузки.
Подавление индикатора прогресса кажется только косметическим.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню