【问题标题】:Devops Yaml getting value of variable inside another variableDevops Yaml 在另一个变量中获取变量的值
【发布时间】:2020-04-21 03:36:21
【问题描述】:

在 Azure devops 中,我想在任务中使用变量,但我想要变量的内容而不是名称本身,所以这是一个额外的间接级别。

somecommand --value `"$(MyVariable)`"

MyVariable 最终来自在 devops 中设置的变量组,并在文件顶部的变量部分中列出。

因此,如果我有一个变量 MyVariable="foo" 并且我的另一个变量组有一个成员 foo="bar" 会期望这是结果。

somecommand --value "bar"

我如何做这个额外的间接级别?

【问题讨论】:

  • 你是否使用 Bash 来执行somecommand?如果是这样,你可以这样做somecommand --value "${!MyVariable}"
  • 我只是在使用 Azure Devops 我不知道它在后台使用了什么
  • 目前,azure devops 任务不支持像 $($(MyVariable))=>$(foo)=>bar 这样的嵌套变量,另一种方法是设置变量 MyVariable=$(foo) 而不是 foo.. . 我们也可以使用内联 PS 任务来做到这一点,例如 thisthis

标签: azure-devops yaml


【解决方案1】:

我如何做这个额外的间接级别?

如果变量组中有foo = bar,管道变量中有MyVariable = foo,VSTS 不支持像$($(MyVariable)) 这样的嵌套变量,即使我们有linked Variable Group

要使您的somecommand --value "$(MyVariable)" 扩展为somecommand --value "bar",您应该在管道变量中设置MyVariable = $(foo) 而不是foo

这样$(MyVariable) 可以在传递给您的命令时扩展为bar

另一种方法是使用 Inline Powershell 任务来设置变量。您可能会从这两个类似的问题中获得一些帮助(onetwo)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    相关资源
    最近更新 更多