我下面有一个函数,它使用单引号作为脚本部分,因为我要传入凭据。我遇到了文档建议,出于安全目的,应该使用单引号而不是双引号。我试图回显用户名,看看该值是否得到正确使用,但我似乎无法得到一个值出现。
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 ""
1条答案
按热度按时间cgh8pdjw1#
经过一些额外的测试,似乎有两件事导致了这个错误。
一个是我需要将我的
withEnv
变量从user
更新为username
。$user
是Jenkins中的保留变量吗?我还需要更新echo命令中引号的用法,这背后的原因是什么,因为我还在尝试理解Groovy插值。
echo Username is "$username"