groovy 无法在Jenkins脚本中呈现使用单引号的变量

z9smfwbn  于 2023-04-05  发布在  Jenkins
关注(0)|答案(1)|浏览(222)

我下面有一个函数,它使用单引号作为脚本部分,因为我要传入凭据。我遇到了文档建议,出于安全目的,应该使用单引号而不是双引号。我试图回显用户名,看看该值是否得到正确使用,但我似乎无法得到一个值出现。

def my_func(String username) {
 withEnv(["user=abc"]) {
  sh(encoding:'UTF-8', script: '''
    #!/usr/bin/bash
    set +x -e
  
    echo "Username is $user"
''')
}

当我在控制台中查看日志时,我看到的都是"Username is "。我遇到了使用withEnv的建议,因为由于在脚本块中使用单引号,我无法直接插入${user}。我尝试了几种方法,例如使用\$user进行转义,但没有显示任何内容。或者echo Username is \\"$user\\"给出Username is ""

cgh8pdjw

cgh8pdjw1#

经过一些额外的测试,似乎有两件事导致了这个错误。
一个是我需要将我的withEnv变量从user更新为username$user是Jenkins中的保留变量吗?
我还需要更新echo命令中引号的用法,这背后的原因是什么,因为我还在尝试理解Groovy插值。
echo Username is "$username"

相关问题