Jenkins管道多线外壳具有转义字符

时间:2016-12-15 21:15:11

标签: jenkins jenkins-pipeline

我遇到了一个管道脚本的奇怪问题。我有一个像

这样的多行sh blob
sh """
   git tag -fa \\"${version}\\" -m \\"Release of ${version}\\"
"""

以某种方式运行:

+ git tag -fa '"1.0-16-959069f'
error: Terminal is dumb, but EDITOR unset
Please supply the message using either -m or -F option.

因此它删除了-m和消息。我试过单逃,双逃,似乎没什么用。

1 个答案:

答案 0 :(得分:2)

我不知道为什么会这样,但确实如此

def tagGithub(String version) {
    def exec = """
    git tag -d ${version} || true
    git push origin :refs/tags/${version}

    # tag new version
    git tag -fa ${version} -m "Release of ${version}"
    git push origin --tags
    """

    sh exec
}

使用内联jenkins groovy插值的东西似乎被破坏了,在另一个var中执行插值然后执行它