当 curl 获得非 200 HTTP 状态时退出 bash 脚本

Mar*_*lar 11 script bash shell shell-script curl

我有一个 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
Run Code Online (Sandbox Code Playgroud)

如果其中一个 curl 响应以 http 状态 != 200 返回,有没有办法让脚本退出?

我还想保留标准的 curl 输出,例如我不想要一个只打印 http 状态代码的解决方案。

干杯

l0b*_*0b0 4

--fail正如man页面中提到的,似乎可以完成这项工作:

$ curl --fail --location http://google.com/nope
$ echo $?
22
Run Code Online (Sandbox Code Playgroud)

  • 从联机帮助页来看,“--fail”不适合,原因如下:1.“静默失败(根本没有输出)”,以及 2.“此方法不是自动防故障的,有时会出现不成功的情况”响应代码将会漏掉`。 (9认同)