ออกจาก bash script เมื่อ curl ได้รับสถานะที่ไม่ใช่ 200 HTTP


11

ฉันมีการตั้งค่าสคริปต์ทุบตีเพื่อดำเนินการตามคำขอ 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

มีวิธีที่จะทำให้สคริปต์ออกถ้าหนึ่งในการตอบสนองของขดกลับมาด้วยสถานะ http! = 200?

ฉันยังต้องการเก็บเอาท์พุท curl มาตรฐานไว้เช่นฉันไม่ต้องการโซลูชันที่พิมพ์รหัสสถานะ http เท่านั้น

ไชโย

คำตอบ:


5

--failเป็นที่กล่าวถึงในmanหน้าดูเหมือนว่าจะทำผลงานได้:

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

4
จาก 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.
อาร์มันด์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.