String Jenkins文件中变量的插值

String Jenkins文件中变量的插值,string,groovy,sed,jenkins-pipeline,gstring,String,Groovy,Sed,Jenkins Pipeline,Gstring,我现在请求帮助,因为我一直在努力处理一个简单的sed命令,该命令将在一个需要一些变量插值的jenkins文件中调用 更好地显示命令,而不是大量的解释: sh "sed -i -e 's/-RELEASE/-${unixEpoch}/g' myFile" sed不符合此语法,并打印命令s/未完成 我已经阅读了关于String和GString的Groovy文档,但我仍然不明白我做错了什么 有什么线索吗 编辑: 我通过调用date+%s来获取unixEpoch,以获取当前时间戳 我打印命令只是为了确

我现在请求帮助,因为我一直在努力处理一个简单的
sed
命令,该命令将在一个需要一些变量插值的jenkins文件中调用

更好地显示命令,而不是大量的解释:

sh "sed -i -e 's/-RELEASE/-${unixEpoch}/g' myFile"
sed
不符合此语法,并打印命令
s/
未完成

我已经阅读了关于String和GString的Groovy文档,但我仍然不明白我做错了什么

有什么线索吗

编辑:

我通过调用
date+%s
来获取
unixEpoch
,以获取当前时间戳

我打印命令只是为了确定执行了什么,我发现:

sed -i -e 's/-RELEASE/-1525341883'
/g' myFile
sed
发送的完整错误为:

sed:-e表达式#1,字符22:unterminated's'命令


<>我发现奇怪的是,打印命令在它的中间有一个<代码> \n>代码>…> p> <代码>日期+%s>代码>在结尾有一个换行符,当你把它插入到生成的<代码> SED中时,它包含了新行,解释了为什么代码> SED在抱怨。您可以在使用前执行
${unixEpoch.trim()}
或修剪
unixEpoch
值。

我无法在Ubuntu 16.04上使用
unixEpoch
123456
(用于测试)重现此操作。你能再分享一下你是如何执行它的吗?@mkobit我添加了一些上下文。我想我找到了解决办法。似乎命令
date
正在字符串末尾添加新行,导致
sed
爆炸……这是我所期望的。谢谢!