Esci dallo script bash quando curl ottiene uno stato HTTP non 200


11

Ho una configurazione di script bash per eseguire alcune richieste di arricciatura

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

C'è un modo per far uscire lo script se una delle risposte arricciate ritorna con uno stato http! = 200?

Voglio anche mantenere l'output curl standard, ad esempio non voglio una soluzione che stampa solo il codice di stato http.

Saluti

Risposte:


5

--fail, come menzionato nella manpagina, sembra fare il lavoro:

$ curl --fail --location http://google.com/nope
$ echo $?
22

4
Dalla manpage, --failnon è adatto per un paio di motivi: 1. Fail silently (no output at all)e 2 This method is not fail-safe and there are occasions where non-successful response codes will slip through..
Armand,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.