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

问题描述 投票:0回答:1

我在下面有一个函数,它在脚本部分使用单引号,因为我要传递凭据。我遇到过建议出于安全目的应使用单引号而不是双引号的文档。我只是想回显一个用户名,看看这个值是否被正确使用,但我似乎无法让一个值出现。

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 ""

jenkins groovy jenkins-groovy
1个回答
0
投票

经过一些额外的测试,似乎有两件事导致了这个错误。

一个是我需要将我的

withEnv
变量从
user
更新为
username
$user
是 Jenkins 中的保留变量吗?

我还需要更新 echo 命令中引号的使用方式。这背后的原因是什么,因为我仍在努力理解 Groovy 插值。

echo Username is "$username"

© www.soinside.com 2019 - 2024. All rights reserved.