Masquer la sortie courbe

209

Je fais une requête curl où il affiche une sortie HTML dans la console comme ceci

<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 />......

etc

J'ai besoin de masquer ces sorties lors de l'exécution des requêtes CURL, j'ai essayé de l'exécuter comme ceci

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

Mais il affiche toujours la sortie, comment puis-je masquer la sortie?

Merci

Rjack
la source
1
Ajouter >/dev/nullà la fin. En savoir plus sur les descripteurs de fichiers sur mywiki.wooledge.org/FileDescriptor?highlight=%28FD%29
Valentin Bajrami

Réponses:

323

De man curl

-s, --silent Mode silencieux ou silencieux. Ne pas afficher les indicateurs de progression ou les messages d'erreur. Rend Curl muet. Il transmettra toujours les données que vous demandez, potentiellement même au terminal / stdout, à moins que vous ne les redirigiez .

Donc, si vous ne voulez pas utiliser de sortie:

curl -s 'http://example.com' > /dev/null
FloHimself
la source
22
Si vous souhaitez uniquement des erreurs, ajoutez l'option -S curl -s -S ' exemple.com '> / dev / null
Gonzalo Cao
Notez que vous ne pouvez pas faire curl -o /dev/null; il y aura une erreur d'écriture.
Keith Tyler
Mais vous pouvez faire curl ... 2>/dev/nullpour rediriger stderr uniquement.
Jesse Chisholm
2
@ KeithTyler curl https://www.google.com -o /dev/nullréussit sans erreur pour moi. J'utilise curl-7.58.0.
x-yuri
À mon avis, wgetil faudrait utiliser des moyens plutôt que de curltélécharger des fichiers.
Vishrant
70

Celui-ci me semble plus élégant:

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

Aussi, si vous voulez voir le code HTTP:

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

La documentation complète est ici .

yegor256
la source
6
Si vous souhaitez toujours afficher les erreurs, vous pouvez également ajouter le --show-errorparamètre.
Simon East
Même en utilisant -sS, les en-têtes sont toujours affichés pour moi :(
Freedo