5 votes

Comment arrêter le script shell si curl a échoué

J'ai un script qui utilise curl. Lorsque je passe de mauvais paramètres au script, curl échoue mais le script continue à s'exécuter. J'ai essayé d'utiliser le paramètre curl -f/--fail mais le problème n'est pas résolu. Quelle est la meilleure façon d'arrêter le script ?

J'ai trouvé mon erreur. J'ai utilisé la commande curl dans une autre commande

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

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

9voto

Jessica Points 396

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

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

Si vous voulez analyser le code de sortie, consultez la section Codes de sortie de la page man curl. Il y a beaucoup de codes différents, en fonction de la raison de l'échec.

MODIFICATION : Vous pouvez également utiliser command1 || command2. command2 est exécuté seulement si command1 a échoué:

curl .... || exit 1

3voto

choroba Points 17339

Il suffit de exit si curl se termine avec un code de sortie différent de zéro:

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

Ou bien, faites en sorte que votre script se termine en cas d'erreur:

set -e
curl http://www.example.com

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X