Sair do script bash quando curl obtém um status HTTP não 200

11

Eu tenho uma configuração de script bash para executar algumas solicitações de 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 uma maneira de fazer o script sair se uma das respostas de retorno retornar com um status http! = 200?

Também quero manter a saída de curvatura padrão, por exemplo, não quero uma solução que imprima apenas o código de status http.

Felicidades

Marklar
fonte

Respostas:

5

--fail, como mencionado na manpágina, parece fazer o trabalho:

$ curl --fail --location http://google.com/nope
$ echo $?
22
l0b0
fonte
3
Na página de manual, --failnão é adequado por alguns motivos: 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