Mic*_*ale 5 jenkins jenkins-workflow
这个非常简单的工作流程:
env.FOO = 42
node {
sh "echo $FOO"
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Running: End of Workflow
groovy.lang.MissingPropertyException: No such property: FOO for class: WorkflowScript
Run Code Online (Sandbox Code Playgroud)
如何在工作流程shell步骤中访问环境变量?
我有一个问题,我需要混合插值.脚本的一部分在之前被插值,并且脚本的一部分在插值期间被插入.使用反斜杠来逃避在运行期间插入的变量的技巧:
def FOO = 42
node {
sh """
BAR = "hello $FOO"
echo \$BAR
"""
}
Run Code Online (Sandbox Code Playgroud)
因此,在脚本运行之前会扩展$ FOO,并且在脚本运行期间会扩展\ $ BAR.
原因是使用双引号时,Groovy的字符串插值会启动并查找FOO的工作流范围变量.
要修复使用单引号:
sh 'echo $FOO'
Run Code Online (Sandbox Code Playgroud)
另请注意,您可以在带双引号的脚本中使用工作流变量:
def FOO = 43
node {
sh "echo $FOO"
}
Run Code Online (Sandbox Code Playgroud)
这将扩展脚本运行$FOO 之前的值.
| 归档时间: |
|
| 查看次数: |
12841 次 |
| 最近记录: |