Jak sprawić, by CURL nie wyświetlał paska postępu?


562

Próbuję użyć cURL w skrypcie i sprawić, aby nie wyświetlał paska postępu.

Wcześniej próbowałem -s, -silent, -S, i -quietopcje, ale żaden z nich nie działa.

Oto typowe polecenie, które próbowałem:

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

Pasek postępu pojawia się tylko po wypchnięciu go do pliku, więc curl -s http://google.comnie ma paska postępu, ale curl -s http://google.com > temp.htmlma.


12
curl -s http://google.commilczy tu dla mnie. W której wersji curl i Linux korzystasz?
Adrian Petrescu,

-s działa dobrze dla mnie w curl 7.21.0 (i686-pc-linux-gnu) libcurl / 7.21.0 OpenSSL / 0.9.8o zlib / 1.2.3.4 libidn / 1.18 i curl 7.19.5 (i386-apple-darwin9. 7.0) libcurl / 7.19.5 zlib / 1.2.3 wygląda jak u trzeba uaktualnić zwijania
derevo

Wypróbowałem to na Fedorze 15 i Mac OSX 10.7.1. Ponadto pasek postępu pojawia się tylko wtedy, gdy go wypycham do pliku, więc curl -s google.com nie ma paska postępu, ale curl -s google.com > temp.html ma.
adammenges

1
Dla każdego, kto chce dowiedzieć się o wersji zainstalowanego curli libcurlużywać poleceniadpkg -l | grep curl
Dimitry K

1
W takim przypadku, należy uruchomić man curlza pokazanie ręcznego stronę curl, a następnie naciśnij /progresslub /hide progresslub stoplub cokolwiek do wyszukiwania kwerendy, aby uzyskać to, co chcesz. Następnie możesz uzyskać odpowiedź taką, jak sugerował chmac.
kenju

Odpowiedzi:


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

działa dla curl wersji 7.19.5 na Ubuntu 9.10 (bez paska postępu). Ale jeśli z jakiegoś powodu nie działa na twojej platformie, zawsze możesz przekierować stderr do / dev / null:

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

31
Powinienem o tym pomyśleć. Ukryje także komunikaty o błędach.
Tom Zych,

1
W moim przypadku można używać / dev / null.
adammenges

Fajnie - działa świetnie. Miałem problem na centOS 6.3, ale nie na innych dystrybucjach - dziwne, ale proste łatwe obejście - dzięki!
Ross

nawiasem mówiąc, zobacz poniższy link, 2>/dev/nulljeśli nie wiesz: stackoverflow.com/questions/10508843/what-is-dev-null-21
kenju

Według strony podręcznika instalacji curl na hoście Ubuntu 14 -ssprawi, że curl nie będzie „pokazywał miernika postępu lub komunikatów o błędach ”. (Nie próbowałem testować ani czytać kodu źródłowego, aby zobaczyć, czy to naprawdę prawda.)
David Winiecki

535

W wersji 7.22.0 curl na Ubuntu i 7.24.0 na OSX Rozwiązaniem nie wykazują postęp , lecz pokazują błędów jest użycie zarówno -s( --silent) i -S( --show-error) w taki sposób:

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

Działa to zarówno dla przekierowanego wyjścia > /some/file, wyjścia | lesspotokowego, jak i wyjścia bezpośrednio do terminala.


3
W moim 7.35 użycie -sS eliminuje wskaźnik postępu, ale TAKŻE eliminuje informacje normalnie zapisywane na standardowe wyjście - których potrzebuję, ponieważ zawiera nazwę pliku zapisaną na dysku zamiast (innego) fileid, który musi być użyty w żądaniu. Wydaje się, że nie ma sposobu, aby po prostu pokonać sam miernik postępu!
Jack

48

Odkryłem, że w curl 7.18.2 pasek postępu pobierania nie jest ukryty za pomocą:

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

ale jest z:

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

6

Nie jestem pewien, dlaczego to robi. Spróbuj -sz -oopcją ustawienia pliku wyjściowego zamiast >.


0

W systemie MacOS 10.13.6 (High Sierra) działa opcja „-ss”. Jest to szczególnie użyteczne w Perlu, w poleceniu podobnym do tego curl -ss --get {someURL}, które, szczerze mówiąc, jest o wiele prostsze niż jakiekolwiek opakowanie LWP lub HTTP, do po prostu pobrania strony internetowej lub zawartości strony.


-1

Jakiś czas temu napisałem prosty skrypt do złomowania w celu wyszukania np. Zainstalowanych konkretnych wersji 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"

Używasz go w ten sposób: ./script.sh https://registry.hub.docker.com/v2/repositories/library/tomcat/tags/

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.