2016-12-15 92 views
2

我遇到了一個管道腳本奇怪的問題。我有一個多線SH斑點狀詹金斯管道多行外殼與轉義字符

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和消息。我試過單次逃脫,雙重逃生,似乎沒有任何工作。

+0

是否簡單'SH「 「」git tag -fa'$ {version}'-m'發佈$ {version}'「」「'工作嗎? – izzekil

+0

nope。我試過單引號,而且我也試過只轉義一次。 – devshorts

回答

1

我不知道爲什麼這個工作,但是這絲毫

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 
} 

東西的直列詹金斯常規插值似乎被淘汰,在另一個變種做插值,然後執行它的工作

+1

即使這樣對我也不起作用 –

+1

所以我計算'version'的方式,最後有一個新的char字符。所以我加了'version.trim()'並開始工作。 –