简体   繁体   English

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

[英]Unable to run shell script inside Jenkins pipeline

I'm able to run the following shell script but couldn't run from Jenkins pipeline code. 我能够运行以下Shell脚本,但无法从Jenkins管道代码运行。

Try 1. 尝试1。

node('buildnode') {

def value = "Myvalue"

def key = "Mykey"

sh '''

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

echo "$DATA"

'''

}

output: 输出:

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

Try 2: 尝试2:

Tried with sh " " " 尝试过sh“”“

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

echo "$DATA"

" " "

output: : 输出

illegal string body character after dollar sign; 美元符号后的非法字符串体字符; solution: either escape a literal dollar sign "\\$5" or bracket the value expression "${5}" 解决方案:要么转义文字美元符号"\\$5"要么将值表达式括起来"${5}"

Can someone help me? 有人能帮我吗?

This should work. 这应该工作。

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

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

You also need to escape $ when calling new subshell under """ """ """ """下调用新的子shell时,还需要转义$

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM