我需要在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”。 知道如何解决吗?
答案 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"'"
,看看它是否有效