我现在正在寻求帮助,因为我一直在努力在需要一点变量插值的 Jenkinsfile 中调用一个简单的sed
命令。
更好地显示命令而不是大解释:
sh "sed -i -e 's/-RELEASE/-${unixEpoch}/g' myFile"
sed
不同意此语法,并打印命令s/
未完成。
我已经阅读了有关字符串和GString的Groovy文档,但我仍然不明白我做错了什么?
有什么线索吗?
编辑:
我通过调用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
值之前对其进行${unixEpoch.trim()}
或修剪。