我在我的Jenkinsfile中有一个字符串参数,其中包含一个空格
参数{字符串(名称:'KW_Issue_resolution', defaultValue: 'Not a Problem',描述:'将问题标记为'Not a Problem')}
我试图将这个参数传递到一个shell脚本中的阶段
stage ('Mark KW issues as not a problem') {
steps {
sh "kwcheck set-status ${params.KW_Issue_IDs} --status ${params.KW_Issue_resolution}"
}
}
但是,shell不会将整个字符串识别为"Not a Problem">
+ kwcheck set-status 190 --status Not a Problem
Cannot change status, 'Not' is not a valid status name
期望shell命令是kwcheck set-status 190——status "Not a Problem">
由于变量在Groovy解释器中插入了空格,因此由于分隔符的原因,sh
step方法中的shell解释器不会将其解析为单个参数字符串。您可以在shell解释器中使用正常语法将其转换为文本字符串:
sh "kwcheck set-status ${params.KW_Issue_IDs} --status '${params.KW_Issue_resolution}'"
您可以在Groovy语法中使用三引号。
因此,在三重引号中,您可以像使用本机bash脚本一样使用"
和'
。
stage ('Mark KW issues as not a problem') {
steps {
sh """#! /bin/bash
kwcheck set-status "${params.KW_Issue_IDs}" --status "${params.KW_Issue_resolution}"
"""
}
}