无法展开cURL命令中使用的变量

时间:2019-02-15 15:09:28

标签: shell


我需要在cURL命令中使用一个变量。该变量需要放置在cURL使用的JSON字符串中。问题在于,当在JSON字符串中使用该变量时,它不会扩展为其值:

export line="job1"

curl -k -X POST https://jenkinsserver \
--data-urlencode json='{"parameter": [{"name":"jenkins.job.name", "value":"$line"}]}'

我也尝试过使用:

"${line}"

但这没有帮助。而不是变量的值,它只是传递“ $ line”。 知道如何解决吗?

2 个答案:

答案 0 :(得分:1)

我知道某处有重复项,但找不到。

使用jq之类的工具来安全地生成JSON,无论line的值是什么。

d=$(jq -n --arg x "$line" '{parameter: [{name: "jenkins.job.name", "value": $x}]}'

curl -k -X POST https://jenkinsserver --data-urlencode json="$d"

答案 1 :(得分:0)

您可以尝试使用"'"$line"'",看看它是否有效