在Jenkinsfile中插入变量

时间:2018-05-03 10:21:31

标签: string groovy sed jenkins-pipeline gstring

我现在正在寻求帮助,因为我一直在努力使用一个简单的sed命令在一个需要一点变量插值的Jenkins文件中调用。

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

sh "sed -i -e 's/-RELEASE/-${unixEpoch}/g' myFile"

sed不同意此语法,并打印出命令s/未完成。

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

有关此的任何线索吗?

编辑:

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

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

sed -i -e 's/-RELEASE/-1525341883'
/g' myFile

sed发送的完整错误是:

sed: -e expression #1, char 22: unterminated 's' command

我发现打印的命令在其中间有一个\n,我觉得很奇怪......

1 个答案:

答案 0 :(得分:2)

date +%s最后有一个换行符,当您将其插入生成的sed时,它会包含该换行符,解释了sed抱怨的原因。在使用之前,您可以${unixEpoch.trim()}或修剪unixEpoch值。