Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins 环境变量操作_Jenkins_Groovy_Jenkins Pipeline - Fatal编程技术网

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。当你尝试了它时会发生什么?