我试图在jenkinsfile中执行一个shell脚本,将choice参数转换为字符串参数。但是我得到了语法错误,不确定是什么问题。已尝试建议的解决方案,但没有成功。
choice(
name: 'IDS_ENVIRONMENT_LIST',
choices: ['8108394', '7827390', '7937032']
)
environment {
EMP_ID = sh(script: """#!/bin/bash
echo ${params.IDS_ENVIRONMENT_LIST} | sed -e 's/[][]//g;s/'\''//g;s/,$//;s/, /,/g' """, returnStdout: true ).trim()
}
WorkflowScript: 103:美元符号后的字符串正文字符非法;解决方案:转义文字美元符号"$5“或将值表达式"${5}”括在第103行,第43列。${params.IDS_ENVIRONMENT_LIST} | sed -e]
发布于 2021-06-07 08:33:45
如果你只是想把一个数组转换成一个字符串,那么使用grrovy的join
方法:
def ID =['sdbx-1807402234', 'devl-5187460678', 'test-891137040']
def asString = ID.join(", ")
对于shell,您只需使用:
def ret = sh(script: "echo ${ID} | sed -e \"s/[][]//g \"\", returnStdout: true)
注意:如果您使用Active choice
参数作为数组,那么请注意,用户可以选择其中一个选项,在这种情况下,params.ID
将包含所选值,而不是所有值。
https://stackoverflow.com/questions/67862868
复制相似问题