我能够运行以下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}"
"\$5"
"${5}"
有人能帮我吗?
这应该工作。
node('buildnode') { def value = "Myvalue" def key = "Mykey" sh """ DATA=\$(printf "%-50s \"${key}\" \"${value}\"") echo "\$DATA" """ }
您还需要在调用下面的新subshell时转义$ """ """
""" """
DATA=$(printf "%-50s \"${key}\" \"${value}\"")