我想从 github 获取一些 api。
所以这是代码
array=(link1 link2 link3 link4)
readarray -t item < <(for i in ${array[@]}
do curl -s "$i" | jq '.tag_name'
done)
然后我可以从项目中获取数据。
但问题是如果还有一些链接需要获取,curl 就会卡在那里。
我希望它立即退出,而不是以前的数据,我需要它打印一些文本,如“错误”或获取它的退出代码,以便我可以在出现任何故障时实现一些逻辑。
为此提供有效的解决方案。
curl -f
如果响应代码大于或等于 400,您可以使用选项立即退出。此外,您可以添加-w
捕获退出代码的-o
选项和将输出重定向到的选项,/dev/null
以避免将响应打印到控制台。curl
您可以通过一次调用读取所有 URL,并使用选项--fail-early
在第一次检测到传输错误时立即退出。添加--max-time
以在 x 秒后中止每次传输以及--connect-timeout
是否要限制连接时间。如果出现错误,项目数组将为空,您可以检查一下。