我的脚本正在使用命令行参数,它需要将它传递给双引号中的curl命令。这是我到目前为止所尝试的简化版本:
json=$1;
echo $json;
curl -X POST -d '{"asin":\"$json\", "template":"bolt","version":"1d"}' -H "Content-Type: application/json" http://someURL
但它不起作用。请帮忙
答案 0 :(得分:2)
$ - 单引号字符串中的变量不会扩展。 -d
参数需要使用双引号,或者至少需要$json
部分:
curl -X POST -d '{"asin":"'"$json"'", "template":"bolt","version":"1d"}' -H "Content-Type: application/json" http://someURL
' - 终止单引号字符串,然后跟随"$json"
,然后'
启动相邻的单引号字符串。
"$json"
变量不应扩展为包含非转义双引号的字符串,否则将导致json被破坏。