Publisher over ssh命令行中的变量问题

pipeline {
agent {
node {
label “172.20.32.73”
}
}
environment {
storage = ‘aaa’
artifactId = ‘bbb’
module_version = ‘ccc’
}
stages {
stage(‘Example1’) {
steps {
sh ‘’’
echo “参数docker.storage是${storage}”
echo “镜像名为 ${storage}/base/${artifactId}:${module_version}”
echo “压缩包 /home/workspace/${SERVICE_STRING}${services_branch##*/}$BUILD_NUMBER.tar”
echo “服务名 $SERVICE_STRING”’’’
}
}

    stage('Example2') {
        // environment {注释1
        //     storage = 'aaa'
        //     artifactId = 'bbb'
        //     module_version = 'ccc'
        // }
        steps {
            // withEnv(['storage=aaa']) {注释2 
            sshPublisher alwaysPublishFromMaster: true, failOnError: true, publishers: [sshPublisherDesc(configName: '视图库-32.217', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''
            echo "分支名称 $services_branch"
            echo "参数docker.storage是$storage"
            echo "镜像名为 ${storage}/base/${artifactId}:${module_version}"
            echo "压缩包 /home/workspace/${SERVICE_STRING}_${services_branch##*/}_$BUILD_NUMBER.tar"
            echo "服务名 $SERVICE_STRING"''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/home/workspace', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '', useAgentForwarding: true, usePty: true)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)]
            // }
        }
    }
}

}

image
代码和输出如上,有两个异常:
1.无法在插件的命令行中获取到自定义的变量;
2.无法正常使用shell字符串截取动作(${services_branch##*/})

标记一下,搬好板凳好好学习,这样的功能场景还没有尝试过。

你可以用下面的方式来引用一个环境变量:
env.name


不是这里的问题,如图,我之前是试过的。

现在能找到的方法就是在进入插件之前在本地写一个env文件记录需要用到的变量及值,将这个文件也一同传过去,在执行远程命令之前先导入这个env文件,就可以正常使用这些变量了。