无法在Jenkins管道中运行shell脚本

时间:2018-05-15 12:51:20

标签: shell jenkins jenkins-pipeline

我能够运行以下shell脚本,但无法从Jenkins管道代码运行。

尝试1。

node('buildnode') {

def value = "Myvalue"

def key = "Mykey"

sh '''

DATA=$(printf "%-50s \"$key\"" "$value")

echo "$DATA"

'''

}

输出:

++ printf '%-50s ' ''
+ DATA=' 

尝试2:

用sh" " "

DATA=$(printf "%-50s \"$key\"" "$value")

echo "$DATA"

" " "

输出

  

美元符号后的非法串体字符;      解决方案:要么转义一个字面的美元符号"\$5",要么包含值表达式"${5}"

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

这应该有用。

node('buildnode') {
    def value = "Myvalue" 
    def key = "Mykey"

    sh """
    DATA=\$(printf "%-50s \"${key}\" \"${value}\"")
    echo "\$DATA"
    """
}

""" """

下调用新的子shell时,您还需要转义$
DATA=$(printf "%-50s \"${key}\" \"${value}\"")