我知道有一些关于如何做到这一点的问题和答案,然而当我将变量用双引号包裹起来时,我的场景似乎仍然无法正常工作。
我正在执行一个curl请求,在Jenkins中获得有效的crumb,以便我可以通过POST请求执行作业。
因此,目前我得到的响应类似于Password Invalid
,因为变量${USER_TOKEN}
未被识别。
echo "The USER TOKEN is " ${USER_TOKEN} # This outputs 123456789 for example
CRUMB=$(curl -s 'http://jenkins:${USER_TOKEN}@localhost:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField, ":",//crumb)')
如果我硬编码USER_TOKEN
,那么这将起作用,但我显然想避免这种情况。
我该如何执行此curl
命令并传递USER_TOKEN
?
更新
如果我用双引号括起${USER_TOKEN}
,我仍然会收到相同的错误。
CRUMB=$(curl -s 'http://jenkins:"${USER_TOKEN}"@localhost:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField, ":",//crumb)')
如果我将curl
请求用双引号括起来,则会得到以下结果:
Invalid Xpath expression, contact(//crumbRequestField,:,//crumb)
Unexpected ':'
curl -s 'http://jenkins:'"${USER_TOKEN}"'@localhost
? - 123