local response=response.json
local status=$(curl -s -w %{http_code} "http://www.google.com" -o $response)
local name=$(cat $response | jq -r .name)
local address=$(cat $response | jq -r .address)
if [ $status = 200 ] && [ $name = "John" ]; then
# Process response
else
# Error
fi
我正在使用上述方法处理更多请求。在上述情况下,所有请求均失败
如果URL无效,则response.json不可用。我已经解析了$ response 2次,因此出现2次以下错误
response.json not found, No such file or directory
response.json not found, No such file or directory
如何使用curl和jq更好地处理这些类型的错误?
答案 0 :(得分:0)
那又怎么样:
if [ $status = 200 ]; then
if [ -f $response ]; then
local name=$(cat $response | jq -r .name)
if [ $name = "John" ]; then
local address=$(cat $response | jq -r .address)
# Process response
else
# Error name is not John
fi
else
# Error no response file
fi
else
# Error status not 200
fi
您可以添加更多条件-出现键“名称”,出现“地址”,... ...如果您不想处理错误,只需删除else部分