Jenkins sed Terraform shell - PullRequest
       10

Jenkins sed Terraform shell

0 голосов
/ 18 сентября 2018

У меня есть конвейер Jenkins, которому нужно запустить sed для файла, но я получаю ошибку line 2: syntax error: unexpected ")"

Мой файл такой: -

name=""
age=""

Моя линия Дженкинса sh:

"""sed -i -e 's|(name *= *")"|\1${params.NAME}"|g' -e 's|(age *= *")"|\1${params.AGE}"|g' vars.txt"""

Я могу нормально запустить sed на своей оболочке, и она работает, но Дженкинс по каким-то причинам не нравится.

Если язапустить его через генератор синтаксиса конвейера Jenkins Я получаю ту же ошибку.

1 Ответ

0 голосов
/ 18 сентября 2018

Вы используете шаблон BRE POSIX, и чтобы создать там группу захвата, вам нужно использовать экранированные скобки, \(...\).Однако в строковом литерале с тройными кавычками необходимо экранировать обратную косую черту, чтобы получить буквальную обратную косую черту в результирующей строке.

Вам нужно исправить строку, которая у вас есть, вот так:

'''sed -i' ' -e 's|\\(name *= *"\\)"|\\1'"${params.NAME}"'"|g' -e 's|\\(age *= *"\\)"|\\1'"${params.AGE}"'"|g' vars.txt'''
...