Jenkins 环境变量操作
使用时:Jenkins 环境变量操作,jenkins,groovy,jenkins-pipeline,Jenkins,Groovy,Jenkins Pipeline,使用时: echo "${env.PRODUCT_NAME}" echo "${env.MyProdName_Key}" 它将回应: MyProdName 使用时: echo "${env.PRODUCT_NAME}" echo "${env.MyProdName_Key}" 它将回应: 123456789 我想使用以下内容: echo "${env.${env.PRODUCT_NAME}_Key}" 这可能吗?怎么做 在Bash中,这被称为方向变量 尝试使用变量使其进一步简化 PRO
echo "${env.PRODUCT_NAME}"
echo "${env.MyProdName_Key}"
它将回应:
MyProdName
使用时:
echo "${env.PRODUCT_NAME}"
echo "${env.MyProdName_Key}"
它将回应:
123456789
我想使用以下内容:
echo "${env.${env.PRODUCT_NAME}_Key}"
这可能吗?怎么做 在Bash中,这被称为方向变量 尝试使用变量使其进一步简化
PRODUCT_NAME=$(echo "${env.PRODUCT_NAME}")
这将指定PRODUCT_NAME=MyProdName
同样地
MyProdName=$(echo "${env.MyProdName_Key}")
这将指定MyProdName=123456789
现在,当您打印产品名称值时,您将获得
echo ${PRODUCT_NAME}
MyProdName
并加上“!”变量间接寻址将为您提供另一个变量值的值
echo ${!PRODUCT_NAME}
123456789
在Bash中,这被称为方向变量 尝试使用变量使其进一步简化
PRODUCT_NAME=$(echo "${env.PRODUCT_NAME}")
这将指定PRODUCT_NAME=MyProdName
同样地
MyProdName=$(echo "${env.MyProdName_Key}")
这将指定MyProdName=123456789
现在,当您打印产品名称值时,您将获得
echo ${PRODUCT_NAME}
MyProdName
并加上“!”变量间接寻址将为您提供另一个变量值的值
echo ${!PRODUCT_NAME}
123456789
也许这会对你有所帮助:
def env = [
PRODUCT_NAME:'MyProdName',
MyProdName_Key: 123456789,
]
println "${env[env.PRODUCT_NAME+'_Key']}"
env
在提供的示例中是Map
,但其工作方式完全相同。也许这会对您有所帮助:
def env = [
PRODUCT_NAME:'MyProdName',
MyProdName_Key: 123456789,
]
println "${env[env.PRODUCT_NAME+'_Key']}"
env
在提供的示例中是Map
,但其工作方式完全相同。重要注意事项,无论您如何推导变量:
如果
字符串本身就是一个变量。这会弄乱你的代码
而不是:
echo“${env.PRODUCT\u NAME}”
你可以做:
echo.PRODUCT\u NAME
此外,还可以使用括号表示法动态获取嵌套对象值
def obj=[a:'1']
echo obj[a]//输出“1”
将这些组合起来,您可以执行以下操作:
def prodName=env.PRODUCT\u NAME//将变量prodName设置为“MyProdName”
echo env[prodName+''u Key']//获取带有键“MyProdName\u Key”的嵌套字段
(注意:这与Opal的答案类似,希望我的分解能有所帮助)重要注意事项,无论您如何推导变量: 如果 字符串本身就是一个变量。这会弄乱你的代码 而不是:
echo“${env.PRODUCT\u NAME}”
你可以做:
echo.PRODUCT\u NAME
此外,还可以使用括号表示法动态获取嵌套对象值
def obj=[a:'1']
echo obj[a]//输出“1”
将这些组合起来,您可以执行以下操作:
def prodName=env.PRODUCT\u NAME//将变量prodName设置为“MyProdName”
echo env[prodName+''u Key']//获取带有键“MyProdName\u Key”的嵌套字段
(注意:这与Opal的答案类似,希望我的分析能有所帮助)它背后的语言是Groovy btw。当你尝试了它时会发生什么?它背后的语言是Groovy btw。当你尝试了它时会发生什么?