在 Jenkins 的 Bash 脚本中使用环境变量
Using environment variables within a Bash script in Jenkins
我知道有几个问题和如何执行此操作的答案,但是当我用双引号括起我的变量时,我似乎仍然无法让我的场景工作。
我正在执行 curl 请求以在 Jenkins 中获取有效的碎屑,这样我就可以通过 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 ':'
您需要对包含双引号的字符串加双引号。这是一种方式:
CRUMB=$(curl -s "http://jenkins:${USER_TOKEN}@localhost:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField, "'":"'",//crumb)")
这样试试
CRUMB=$(curl -s "http://jenkins:"${USER_TOKEN}"@localhost:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField, \":\",//crumb)")
如果你想在你的字符串中扩展一个变量,那么整个字符串必须用双引号括起来。单引号阻止任何 bash 评估。您还必须转义整个字符串中的任何双引号。
我知道有几个问题和如何执行此操作的答案,但是当我用双引号括起我的变量时,我似乎仍然无法让我的场景工作。
我正在执行 curl 请求以在 Jenkins 中获取有效的碎屑,这样我就可以通过 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 ':'
您需要对包含双引号的字符串加双引号。这是一种方式:
CRUMB=$(curl -s "http://jenkins:${USER_TOKEN}@localhost:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField, "'":"'",//crumb)")
这样试试
CRUMB=$(curl -s "http://jenkins:"${USER_TOKEN}"@localhost:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField, \":\",//crumb)")
如果你想在你的字符串中扩展一个变量,那么整个字符串必须用双引号括起来。单引号阻止任何 bash 评估。您还必须转义整个字符串中的任何双引号。