带有sh的Jenkins脚本化管道不适用于多行脚本

带有sh的Jenkins脚本化管道不适用于多行脚本,jenkins,jenkins-pipeline,sh,jenkins-groovy,Jenkins,Jenkins Pipeline,Sh,Jenkins Groovy,只是得到了一个简单的脚本化管道,在这里它停止了执行多行包装在“sh”下的shell命令的工作。片段如所附图片所示 这是我在执行阶段2时得到的错误。你能告诉我怎么修吗 尝试在下面的“脚本控制台”中运行,但没有成功 import jenkins.model.* jenkins = Jenkins.instance 运行Jenkins第2阶段时出错,请参见下文 groovy.lang.MissingPropertyException: No such property: sh for class:

只是得到了一个简单的脚本化管道,在这里它停止了执行多行包装在“sh”下的shell命令的工作。片段如所附图片所示

这是我在执行阶段2时得到的错误。你能告诉我怎么修吗

尝试在下面的“脚本控制台”中运行,但没有成功

import jenkins.model.*
jenkins = Jenkins.instance
运行Jenkins第2阶段时出错,请参见下文

groovy.lang.MissingPropertyException: No such property: sh for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:224)
at org.kohsuke.groovy.sandbox.impl.Checker$4.call(Checker.java:241)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:238)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:28)
at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
at WorkflowScript.run(WorkflowScript:10)
at ___cps.transform___(Native Method)
at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.get(PropertyishBlock.java:74)
多行sh块也应从同一行开始:-

stage('Stage 2') 
    {
        sh ''' 
            echo ${WORKSPACE}
        '''
    }

据我记忆所及,三重单引号不会进行变量扩展。@vinWin您也可以用括号将字符串括起来,以提示sh其边界。谢谢,为了正确对齐,我们使用了不同的行,根据建议,现在已经修复了@用户_9090实际上是@MaratC。两个stage.s在每个操作中都会输出类似的内容。后面的一个是多行程序来运行一组shell脚本commandsHanks@Tower以获得建议,就可以了!
stage('Stage 2') 
    {
        sh ''' 
            echo ${WORKSPACE}
        '''
    }