一尘不染

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

jenkins

我能够运行以下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}"

有人能帮我吗?


阅读 435

收藏
2020-07-25

共1个答案

一尘不染

这应该工作。

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

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

您还需要在调用下面的新subshel​​l时转义$ """ """

DATA=$(printf "%-50s \"${key}\" \"${value}\"")
2020-07-25