詹金斯sed Terraform外壳

时间:2018-09-18 10:47:54

标签: jenkins sed jenkins-pipeline

我有一个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"""

我可以在我的shell上正常运行sed并且可以运行,但是Jenkins由于某些原因不喜欢它。

如果通过Jenkins Pipeline语法生成器运行它,则会收到相同的错误。

1 个答案:

答案 0 :(得分:0)

您正在使用BRE POSIX模式,并且要在此处创建捕获组,需要使用转义括号\(...\)。但是,在三引号括起来的字符串文字中,您需要转义反斜杠以在结果字符串中获取文字反斜杠。

您需要像这样修复行:

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