Jenkinsfile 中的变量插值
Interpolation of variables inside Jenkinsfile
我现在正在寻求帮助,因为我一直在努力使用一个简单的 sed
命令在需要一点变量插值的 Jenkinsfile 中调用。
更好地显示命令而不是大量解释:
sh "sed -i -e 's/-RELEASE/-${unixEpoch}/g' myFile"
sed
不同意此语法并打印命令 s/
未完成。
我已阅读 Groovy 有关 String 和 GString 的文档,但我仍然不明白我做错了什么?
有什么线索吗?
编辑:
我通过调用 date +%s
获取 unixEpoch
以获得当前时间戳。
我打印命令只是为了确定执行了什么,我发现:
sed -i -e 's/-RELEASE/-1525341883'
/g' myFile
sed
发送的完整错误是:
sed: -e expression #1, char 22: unterminated 's' command
我发现打印的命令中间有一个 \n
很奇怪...
date +%s
末尾有一个换行符,当您将它插入到生成的 sed
中时,它包含了换行符,这解释了为什么 sed
会抱怨。在使用它之前,您可以 ${unixEpoch.trim()}
或 trim unixEpoch
值。
我现在正在寻求帮助,因为我一直在努力使用一个简单的 sed
命令在需要一点变量插值的 Jenkinsfile 中调用。
更好地显示命令而不是大量解释:
sh "sed -i -e 's/-RELEASE/-${unixEpoch}/g' myFile"
sed
不同意此语法并打印命令 s/
未完成。
我已阅读 Groovy 有关 String 和 GString 的文档,但我仍然不明白我做错了什么?
有什么线索吗?
编辑:
我通过调用 date +%s
获取 unixEpoch
以获得当前时间戳。
我打印命令只是为了确定执行了什么,我发现:
sed -i -e 's/-RELEASE/-1525341883'
/g' myFile
sed
发送的完整错误是:
sed: -e expression #1, char 22: unterminated 's' command
我发现打印的命令中间有一个 \n
很奇怪...
date +%s
末尾有一个换行符,当您将它插入到生成的 sed
中时,它包含了换行符,这解释了为什么 sed
会抱怨。在使用它之前,您可以 ${unixEpoch.trim()}
或 trim unixEpoch
值。