如何在 Jenkins Groovy 中的多行 shell 脚本中设置变量?

How to set variables in a multi-line shell script within Jenkins Groovy?

假设我在 Jenkins 中有一个 Groovy 脚本,其中包含一个多行 shell 脚本。如何在该脚本中设置和使用变量?正常方式产生错误:

sh """
    foo='bar'
    echo $foo
"""

Caught: groovy.lang.MissingPropertyException: No such property: foo for class: groovy.lang.Binding

您需要更改为三重单引号 ''' 或转义美元 $

然后您将跳过 groovy 模板,这就是给您带来这个问题的原因

我只是在行尾加了一个'\'

sh script: """\
  foo='bar' \
  echo $foo \
""", returnStdout: true

这条语句适用于我的脚本。