Comment arrêter un script shell en cas d'échec de curl

3

J'ai un script qui utilisait curl lorsque je transmettais des paramètres incorrects à un script, mais le script continue à s'exécuter. J'ai essayé d'utiliser le curl -f/--failparamètre mais le problème n'a pas été résolu. Quel est le meilleur moyen d'arrêter le script?

J'ai fondé mon erreur. J'ai utilisé la curlcommande dans une autre commande

echo `curl --fail ... || exit 1`

Après avoir retiré echo, curl se met à fonctionner correctement. Merci pour la réponse, c'est aussi utile.

Steelflax
la source
2
vérifiez le code de sortie de curl, également en double de stackoverflow.com/questions/3822621/…
Jasper

Réponses:

6

Vous pouvez vérifier le code de sortie en utilisant $?:

exit_status = $?
if [ $exit_status != 0 ]
  then
    exit $exit_status
fi

Si vous souhaitez analyser le statut de sortie, consultez la Exit codessection à partir de la man curlpage. Il y a beaucoup de codes différents, selon la raison pour laquelle cela a échoué.

EDIT: Vous pouvez également utiliser command1 || command2. command2est exécuté si et seulement si command1a échoué:

curl .... || exit 1
ssssteffff
la source
2

Juste exitsi curlse termine par un code de sortie non nul:

curl http://www.example.com || exit 1

Ou, faites sortir votre script en cas d'erreur:

set -e
curl http://www.example.com
choroba
la source