将双引号中的命令行参数传递给curl

时间:2017-08-18 14:01:32

标签: shell curl

我的脚本正在使用命令行参数,它需要将它传递给双引号中的curl命令。这是我到目前为止所尝试的简化版本:

json=$1;
echo $json;

curl -X POST -d '{"asin":\"$json\", "template":"bolt","version":"1d"}' -H "Content-Type: application/json" http://someURL

但它不起作用。请帮忙

1 个答案:

答案 0 :(得分:2)

$ - 单引号字符串中的变量不会扩展。 -d参数需要使用双引号,或者至少需要$json部分:

curl -X POST -d '{"asin":"'"$json"'", "template":"bolt","version":"1d"}' -H "Content-Type: application/json" http://someURL

' - 终止单引号字符串,然后跟随"$json",然后'启动相邻的单引号字符串。

"$json"变量不应扩展为包含非转义双引号的字符串,否则将导致json被破坏。