Ali*_*rkh 22

在groovy.lang.Script中有一个方法public Binding getBinding().另请参见groovy.lang.Binding with method public boolean hasVariable(String name).

因此你可以简单地检查变量存在之类的

if (binding.hasVariable('superVariable')) {
// your code here
}
Run Code Online (Sandbox Code Playgroud)


Max*_*dig 7

// Example usage: defaultIfInexistent({myVar}, "default")
def defaultIfInexistent(varNameExpr, defaultValue) {
    try {
        varNameExpr()
    } catch (exc) {
        defaultValue
    }
}
Run Code Online (Sandbox Code Playgroud)


Val*_*_Bo 5

脚本引擎注入的变量保存在 中 binding.variables,因此您可以例如检查名为 的变量xx:

if (binding.variables["xx"]) ...
Run Code Online (Sandbox Code Playgroud)

  • @andrewlorien 如果您发现了这样的错误,您可以转到 Jenkins 设置,“进程内脚本批准”并批准此脚本。 (2认同)

Sum*_*til 1

对此处给出的现有解决方案的改进/sf/answers/3941466231/ -

def defaultIfInexistent(varName, defaultValue){
    try{
        varName.toString()
        return varName
    }catch(ex){
        return defaultValue
    }
}
Run Code Online (Sandbox Code Playgroud)