Bash-从Bash Var或AZ命令设置Azure变量

Bash-从Bash Var或AZ命令设置Azure变量,bash,azure,variables,Bash,Azure,Variables,我不能将变量设置为原始值以外的任何值。这个()并没有真正的帮助 变量定义方式的上下文: jobs: - job: "Do things" variables: STORAGE_ACCOUNT_NAME: '' steps: - script: #do stuff here 这很好: echo'##vso[task.setvariable=STORAGE\u ACCOUNT\u NA

我不能将变量设置为原始值以外的任何值。这个()并没有真正的帮助

变量定义方式的上下文:

    jobs:
      - job: "Do things"
        variables:
          STORAGE_ACCOUNT_NAME: ''
        steps:
          - script: #do stuff here

这很好:
echo'##vso[task.setvariable=STORAGE\u ACCOUNT\u NAME]bob'

但是,如果我运行下面的代码,
STORAGE\u ACCOUNT\u NAME
为空:

name_of_storage_account_to_release_to=$(az resource list --tag is_live=false --query [0].name --out tsv)
echo '##vso[task.setvariable variable=STORAGE_ACCOUNT_NAME]$name_of_storage_account_to_release_to'
这也失败了:

echo '##vso[task.setvariable variable=STORAGE_ACCOUNT_NAME]$(az resource list --tag is_live=false --query [0].name --out tsv)'
看起来这应该是最简单的事情了,但我搞不懂语法。请注意,我确信我的抓取命令可以工作,因为我可以回显以下结果:

name\u of\u storage\u account\u to\u release\u to=$(az资源列表--标记为\u live=false--查询[0]。name--out tsv)


而且效果很好。设置Azure变量才是问题所在。

您可以使用双引号来允许变量扩展:

echo "##vso[task.setvariable variable=STORAGE_ACCOUNT_NAME]$name_of_storage_account_to_release_to"

您是否尝试过使用双引号来允许变量扩展:
echo“##vso[task.setvariable=STORAGE\u ACCOUNT\u NAME]$NAME\u of_STORAGE\u ACCOUNT\u to_release\u to”
不,我没有,我第一次使用bash时,我真的希望它这么简单,我只是错过了一些明显的东西。非常感谢。正在尝试。必须离开一个半小时,才能更新结果。是的,就是这样。我想我不认识巴什。非常感谢,你真的帮我省了几个小时。我想我已经浏览了足够多的文档。@VSO请在下面将对你有用的内容作为一个答案发布,这样它也可以帮助社区中的其他人。@Philippe想快速发布这个答案,因为你已经回答了这个问题?如果没有,我会晚些时候。