Jenkins 为什么在 tokenize(', ').join('\n') 之后保留 [ ]?

Jenkins why stay [ ] after tokenize(', ').join('\n')?

在 ENV 的 jenkins 管道中,我有主机列表

退出带有主机列表的 YAML

matching_hosts:
  - dev-app-0004
  - dev-app-0005
  - dev-app-0006

詹金文件

def jenkins_ci_examples = [:]

 jenkins_ci_examples.project_vars = readYaml file: 'vars/project_vars.yml'

env.target_hosts=jenkins_ci_examples.project_vars.matching_hosts

詹金斯日志:

+ printenv

target_hosts=[dev-app-0004, dev-app-0005, dev-app-0006]

在我想转换主机列表后要在文件主机中保存什么

writeFile file: "hosts", text: "[project1]\n" + env.target_hosts.tokenize(', ').join('\n')+ "\n"
sh "cat hosts"

结果

[project1]
[dev-app-0004
dev-app-0005
dev-app-0006]

如何去掉符号“[”和“]”?

您可以通过以下方式使用它:

target_hosts=["dev-app-0004", "dev-app-0005", "dev-app-0006"]
writeFile file: 'hosts.txt', text:"[project1]\n" + env.target_hosts.join('\n')+ "\n"

输出:

编辑: 根据问题,在不使用 " 的情况下,您可以使用如下:

writeFile file: 'hosts.txt', text:"[project1]\n" + target_hosts.tokenize(', ').join('\n').replaceAll("[\[*\]]","")   + "\n"