3

我现在正在寻求帮助,因为我一直在努力解决一个sed需要在 Jenkinsfile 中调用的简单命令,该命令需要一些变量插值。

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

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中间有一个很奇怪......

4

1 回答 1

2

date +%s最后有一个换行符,当你将它插入到你的生成sed中时,它包括那个解释为什么sed抱怨的换行符。您可以在使用它之前执行${unixEpoch.trim()}或修剪该unixEpoch值。

于 2018-05-03T15:02:18.927 回答