Выход из скрипта bash, когда curl получает статус HTTP не 200

11

У меня есть скрипт bash для выполнения нескольких запросов 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

Есть ли способ заставить скрипт завершиться, если один из ответов curl возвращается с http-статусом! = 200?

Я также хочу сохранить стандартный вывод curl, например, мне не нужно решение, которое печатает только код состояния http.

ура

Marklar
источник

Ответы:

5

--fail, как упоминалось на manстранице, похоже, делает эту работу:

$ curl --fail --location http://google.com/nope
$ echo $?
22
l0b0
источник
3
С manpage, --failне подходит по нескольким причинам: 1. Fail silently (no output at all)и 2 This method is not fail-safe and there are occasions where non-successful response codes will slip through..
Арманд