Как получить cURL, чтобы не показывать индикатор выполнения?

Я пытаюсь использовать 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 делает.

Ответ 1

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

Ответ 2

В 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 и выводит прямо в терминал для меня.

Ответ 3

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

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

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

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

Ответ 4

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

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

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

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

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

Ответ 5

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

Ответ 6

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

Ответ 7

Некоторое время назад написал простой скрипт для проверки, например, поиска конкретных версий 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/