gpt4 book ai didi

shell - groovy 脚本 - 带变量的 sh

转载 作者:行者123 更新时间:2023-12-04 05:16:41 39 4
gpt4 key购买 nike

缺少一些明显的东西。 如何将 groovy 脚本中的变量传递给 shell 命令? 如果它对语法很重要,这是在 Jenkinsfile 的上下文中。

def COLOR

node('nodename'){

stage ('color') {

COLOR = "green"
echo "color is $COLOR"

sh '''COLOR=${COLOR}
echo $COLOR'''

}
}

我希望看到 shell 位打印 green ,但我得到以下信息;
[Pipeline] echo
color is green
[Pipeline] sh
[job] Running shell script
+ COLOR=
+ echo

我必须在 sh 上使用三重引用因为一旦我理顺这些内容就会进入那里。

最佳答案

您必须使用双引号而不是单引号来替换字符串中的表达式:

def COLOR

node('nodename'){

stage ('color') {

COLOR = "green"
echo "color is $COLOR"

sh """COLOR=${COLOR}
echo $COLOR"""

}
}

如果由于某种原因需要使用单引号,请尝试使用 + 进行连接。 :
sh '''COLOR=''' + COLOR + '''
echo ''' + COLOR

关于shell - groovy 脚本 - 带变量的 sh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43376744/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com