Ukryj efekt zwijania

209

Zgłaszam curl, gdzie wyświetla html w konsoli w ten sposób

<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /home/domain/public_html/wp-content/themes/explicit/functions/ajax.php:87) in <b>/home/domain/public_html/wp-content/themes/explicit/functions/ajax.php</b> on line <b>149</b><br />......

itp

Muszę ukryć te dane wyjściowe podczas uruchamiania żądań CURL, próbowałem uruchomić CURL w ten sposób

curl -s 'http://example.com'

Ale nadal wyświetla dane wyjściowe, jak mogę ukryć dane wyjściowe?

Dzięki

Rjack
źródło
1
Dołącz >/dev/nullna końcu. Przeczytaj więcej o deskryptorach plików na mywiki.wooledge.org/FileDescriptor?highlight=%28FD%29
Valentin Bajrami

Odpowiedzi:

323

Od man curl

-s, --silent Tryb cichy lub cichy. Nie pokazuj miernika postępu ani komunikatów o błędach. Wycisza Curl. Nadal wyśle ​​dane , o które prosisz, potencjalnie nawet do terminala / standardowego wyjścia, chyba że je przekierujesz .

Więc jeśli nie chcesz żadnego wyjścia, użyj:

curl -s 'http://example.com' > /dev/null
FloHimself
źródło
22
Jeśli chcesz tylko błędy, dodaj flagę -S curl -s -S ' example.com '> / dev / null
Gonzalo Cao
Pamiętaj, że nie możesz tego zrobić curl -o /dev/null; spowoduje to błąd zapisu.
Keith Tyler,
Ale możesz zrobić, curl ... 2>/dev/nullaby przekierować tylko stderr.
Jesse Chisholm,
2
@KeithTyler curl https://www.google.com -o /dev/nullodnosi sukcesy bez błędów. Używam curl-7.58.0.
x-yuri
że moim zdaniem wgetzamiast curlpobierania plików należy używać środków .
Vishrant
70

Ten wygląda dla mnie bardziej elegancko:

curl --silent --output /dev/null http://example.com

Ponadto, jeśli chcesz zobaczyć kod HTTP:

curl --write-out '%{http_code}' --silent --output /dev/null http://example.com

Pełna dokumentacja jest tutaj .

yegor256
źródło
6
Jeśli nadal chcesz wyświetlać błędy, możesz również dodać --show-errorparametr.
Simon East
Nawet używając -sS nadal wyświetla mi nagłówki :(
Freedo