Quitter le script bash lorsque curl obtient un statut HTTP non 200

11

J'ai une configuration de script bash pour effectuer quelques requêtes curl

for currency in EUR INR JPY
do
  curl -i --data '{"currency": "'$currency'"}' -H "Accept: application/json" -H "Content-Type: application/json" http://0.0.0.0:8080/price && echo
done

Existe-t-il un moyen de faire quitter le script si l'une des réponses curl revient avec un état http! = 200?

Je veux également conserver la sortie de boucle standard, par exemple, je ne veux pas d'une solution qui n'imprime que le code d'état http.

À votre santé

Marklar
la source

Réponses:

5

--fail, comme mentionné dans la manpage, semble faire le travail:

$ curl --fail --location http://google.com/nope
$ echo $?
22
l0b0
la source
3
À partir de la page de manuel, --failne convient pas pour deux raisons: 1. Fail silently (no output at all)et 2 This method is not fail-safe and there are occasions where non-successful response codes will slip through..
Armand