Json 如何修复此curl命令的shell脚本

Json 如何修复此curl命令的shell脚本,json,shell,curl,Json,Shell,Curl,嘿,伙计们,我正在通过几个循环运行一个shell脚本来获取记录,但是curl命令给了我一个无效的json错误,我做错了什么 resp=$(curl -g -u "${usr}":"${pwd}" -X GET "${env}"/"${name}"/res/"${type}"?where={%22timestamp%22:{%22$gt%22:{%22$date%22:%22"${date1}"%22},%22$lt%22:{%22$date%22:%22"${date2}"%22}}}&

嘿,伙计们,我正在通过几个循环运行一个shell脚本来获取记录,但是curl命令给了我一个无效的json错误,我做错了什么

resp=$(curl -g -u "${usr}":"${pwd}" -X GET "${env}"/"${name}"/res/"${type}"?where={%22timestamp%22:{%22$gt%22:{%22$date%22:%22"${date1}"%22},%22$lt%22:{%22$date%22:%22"${date2}"%22}}}&paging=limit:100,page:${i})

引用地狱的话。printf可以帮助:

url=$(printf '%s/%s/res/%s?where={%%22timestamp%%22:{%%22$gt%%22:{%%22$date%%22:%%22%s%%22},%%22$lt%%22:{%%22$date%%22:%%22%s%%22}}}&paging=limit:100,page:%s' "$env" "$name" "$type" "$date1" "$date2" "$i")

resp=$(curl -g -u "$usr:$pwd" -X GET "$url")

您是否使用该行上方的内容来确定要发送给curl的命令行?类似于echo${env}/${name}/res/${type}?where={%22timestamp%22:{%22$gt%22:{%22$date%22:%22${date1}%22},%22$lt%22:{%22$date%22:%22${date2}%22}和paging=limit 100,page:${i}…请注意,在bash认为您想转义之前,请注意%22中的百分比需要加倍,以便printf看到文字%:%22%