2015-11-05 124 views
0

嘿傢伙我通過幾個循環運行一個shell腳本來獲取記錄,但curl命令給了我一個無效的json錯誤,我做錯了什麼?我該如何修復這個curl命令的shell腳本

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}) 
+0

您是否使用該行上面的內容來查找要發送的捲曲命令?類似 'echo「$ {env}」/「$ {name}」/ res /「$ {type}」?其中= {%22timestamp%22:{%22 $ gt%22:{%22 $ date% 22:%22 「$ {日期1}」 %22},%22 $ LT%22:{%22 $日期%22:%22 「$ {DATE2}」 %22}}}&尋呼=極限:100,頁: $ {i}' – Luis

+0

...注意,在bash認爲你想分叉之前你會想逃避'&' – Luis

回答

0

引用地獄。 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") 
+0

請注意,%22中的%需要翻倍,所以printf看到的是字面量%:' %% 22' –