R.V*_*R.V 2 shell jenkins jenkins-pipeline
我能够运行以下 shell 脚本,但无法从 Jenkins 管道代码运行。
尝试 1。
node('buildnode') {
def value = "Myvalue"
def key = "Mykey"
sh '''
DATA=$(printf "%-50s \"$key\"" "$value")
echo "$DATA"
'''
}
Run Code Online (Sandbox Code Playgroud)
输出:
++ printf '%-50s ' ''
+ DATA='
Run Code Online (Sandbox Code Playgroud)
尝试2:
试过 sh " " "
DATA=$(printf "%-50s \"$key\"" "$value")
echo "$DATA"
" " "
Run Code Online (Sandbox Code Playgroud)
输出::
美元符号后的非法字符串体字符;解决方案:要么转义文字美元符号,
"\$5"要么将值表达式括起来"${5}"
有人能帮我吗?
这应该有效。
node('buildnode') {
def value = "Myvalue"
def key = "Mykey"
sh """
DATA=\$(printf "%-50s \"${key}\" \"${value}\"")
echo "\$DATA"
"""
}
Run Code Online (Sandbox Code Playgroud)
下调用新的子shell时也需要转义$ """ """
DATA=$(printf "%-50s \"${key}\" \"${value}\"")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2988 次 |
| 最近记录: |