创建复杂的环境变量

时间:2019-09-24 07:40:49

标签: groovy jenkins-pipeline

超出环境变量WORKSPACE的位置,我需要提取最后一个'\'之后的字符串的一部分。例如,我有something1\something2\something3,我需要提取 something3 并将其另存为Jenkinsfile中的环境变量。

我已经尝试过这种方法:

groovy
environment {
        service = "${(env.WORKSPACE).substring((env.WORKSPACE).lastIndexOf('\'), (env.WORKSPACE).length())}"
    }

但是在运行它时出现错误:

WorkflowScript: 20: expecting ''', found '\n' @ line 20, column 113.
    (env.WORKSPACE).length())}"""
                                 ^

1 error

1 个答案:

答案 0 :(得分:2)

在Groovy和许多其他语言中,\是转义字符。因此,在lastIndexOf中,'\'正在打开一个字符串,然后转义结束的'

您只需要转义\(转义转义)

"${(env.WORKSPACE).substring((env.WORKSPACE).lastIndexOf('\\'), (env.WORKSPACE).length())}"

您也可以从字符串中删除它,因为它已经是字符串:

service = env.WORKSPACE.substring(env.WORKSPACE.lastIndexOf('\\'), env.WORKSPACE.length())

应该足够