Beenden Sie das Bash-Skript, wenn Curl einen HTTP-Status von nicht 200 erhält

11

Ich habe ein Bash-Skript eingerichtet, um ein paar Curl-Anfragen auszuführen

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

Gibt es eine Möglichkeit, das Skript zu beenden, wenn eine der Curl-Antworten einen http-Status hat! = 200?

Ich möchte auch die Standard-Curl-Ausgabe beibehalten, z. B. möchte ich keine Lösung, die nur den http-Statuscode druckt.

Prost

Marklar
quelle

Antworten:

5

--fail, wie auf der manSeite erwähnt, scheint den Job zu machen:

$ curl --fail --location http://google.com/nope
$ echo $?
22
l0b0
quelle
3
Aus der Manpage, --failist aus mehreren Gründen nicht geeignet: 1. Fail silently (no output at all)und 2 This method is not fail-safe and there are occasions where non-successful response codes will slip through..
Armand