[英]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.