我在为 Jenkins 管道中的容器设置环境变量时遇到了问题。 似乎“withEnv”在没有 bash 的机器上不能很好地工作。
你能确认一下吗?我找不到官方声明 ;-)
当我在 Jenkins slave 上运行以下代码片段时,它起作用了。 但是当它在没有 BASH 的 docker 容器中执行时,“$test”未设置。
withEnv(["test='asd'"]){
sh 'echo $test'
}
最佳答案
如果我没记错的话,我相信变量设置不正确。
试试这个:
withEnv(["test=asd"]){
sh "echo \$test"
}
在 Jenkins 管道中:
$var = Groovy parameter
\$var (within a sh closure) = Bash parameter
${var} = also refers to Groovy parameter
为了将 groovy 变量插入到 bash 变量中:
sh ("VAR=${GROOVY_VAR}")
在 sh 闭包中使用 bash 变量:
sh (" echo \$BASH_VAR")
关于bash - Jenkins Pipeline Step withEnv 在没有 BASH 的情况下无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40672083/