我在jenkinsfile中有以下阶段,其中参数名称是从for循环“ i”值派生的: 如何在运行时内插在运行时导出的参数值
stage ('Create new part'){
steps {
script{
sh "mkdir ${WORKSPACE}/inventories && touch ${WORKSPACE}/inventories/hosts"
for (i in (["db", "pr", "pl", "ad", "lo", "log", "jm", "se", "fo", "me", "he"]) ) {
if ("${params."'$i'_instances"}" == "3" && "${params."'$i'_disksize"}" > "80") {
sh "echo 'Entered if loop'"
sh "echo '['$i'-servers]'>> ${WORKSPACE}/inventories/hosts"
for (j=1; j<=params.$i_instances; j++) {
sh "echo '${params.project_name}-${params.environment_name}-${$i_prefix}-$j target_fs="${params.$i_FS_TYPE}" percentage_fs="{params.$i_fs_percentage}"' >> ${WORKSPACE}/inventories/hosts"
}
}
}
}
}
}
答案 0 :(得分:2)
Groovy GString周围的单引号可防止插值。请改用if (params."${i}_instances" == "3" && params."${i}_disksize" != "80")
。