Создание сложных переменных среды - PullRequest
1 голос
/ 24 сентября 2019

Из переменной окружения WORKSPACE Мне нужно извлечь часть строки после последней '\' .Например, у меня есть something1\something2\something3, и мне нужно извлечь что-то3 и сохранить его как переменную окружения в 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 Ответ

1 голос
/ 24 сентября 2019

В Groovy и многих других языках \ является escape-символом.Таким образом, в lastIndexOf '\' открывает строку, а затем экранирует закрывающий '

Вам просто нужно экранировать \ (экранировать escape)

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

Вы также можете извлечь это из строки, так как это уже строка:

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

должно быть достаточно

...