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

62

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

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

抛出异常:groovy.lang.MissingPropertyException:在类groovy.lang.Binding中找不到属性foo。


请参见:https://dev59.com/K1cQ5IYBdhLWcg3wCfSS#43452729 - Babak
2个回答

98
你需要更换成三个单引号 ''' 或者转义美元符号 \$
然后你就可以避免使用Groovy模板,这是导致你遇到问题的原因。

1
可能会有用 - https://gist.github.com/Faheetah/e11bd0315c34ed32e681616e41279ef4 - ALex_hha

17

我只是在行末加上一个反斜杠\

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

这个语句可以在我的脚本中运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接