我正在尝试使用curl通过脚本来更新网站的某些信息,但是效果不佳,这是我拥有的代码:
CURL_STD_OPTS="-k --header 'Content-Type: application/json' --header 'Accept: application/json'
curl "$CURL_STD_OPTS" -X POST --data '{ "actual": '"$BAL"' }' "'$websiteurl'"
这是输出消息:
jdelaoss@infcet99:/tools/saadmin/occtools_morning_checks $ ./test.sh
curl: option -k --header 'Content-Type: application/json' --header 'Accept: application/json': is unknown
如果我直接使用其运行选项从外壳运行脚本。
答案 0 :(得分:1)
您需要使用数组,而不是常规变量。
curl_std_opts=( -k --header 'Content-Type: application/json' --header 'Accept: application/json')
curl "${curl_std_opts[@]}" -X POST --data "{\"actual\": $BAL}" "$websiteurl"
为了安全起见,您应该使用jq
之类的工具来生成JSON,而不要依靠参数插值来生成有效的JSON。
curl "${curl_std_opts[@]}" -X POST --data "(jq --argjson b "$BAL" '{actual: $b}') "$websiteurl"