我的 Jenkinsfile 中有一個字串引數,其中包含一個空格
parameters { string(name: 'KW_Issue_resolution', defaultValue: 'Not a Problem', description: '將問題標記為不是問題') }
我正在嘗試將此引數傳遞到一個階段中的 shell 腳本中
stage ('Mark KW issues as not a problem') {
steps {
sh "kwcheck set-status ${params.KW_Issue_IDs} --status ${params.KW_Issue_resolution}"
}
}
但是,shell 不會將整個字串識別為“不是問題”
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"
uj5u.com熱心網友回復:
由于該變數是在 Groovy 解釋器中使用空格插入的,因此sh由于分隔符,step 方法中的 shell 解釋器不會將其決議為單個引數字串。您可以使用正常語法將其轉換為 shell 解釋器中的文字字串:
sh "kwcheck set-status ${params.KW_Issue_IDs} --status '${params.KW_Issue_resolution}'"
uj5u.com熱心網友回復:
您可以在 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}"
"""
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/533770.html
標籤:壳詹金斯詹金斯管道嘘
