Bash 的 Yaml 变量分配问题

Issue With Yaml Variable Assignment With Bash

尝试在 yaml 文件中使用以下语法分配变量时遇到问题。以下代码取自 Define variables 了解变量语法 :

部分下的 Microsoft 文档
variables:
- name: one
  value: initialValue 

steps:
  - script: |
      echo ${{ variables.one }} # outputs initialValue
      echo $(one)
    displayName: First variable pass
  - bash: echo '##vso[task.setvariable variable=one]secondValue'
    displayName: Set new variable value
  - script: |
      echo ${{ variables.one }} # outputs initialValue
      echo $(one) # outputs secondValue
    displayName: Second variable pass

具体来说,我发现问题出在语法 '##vso[task.setvariable variable=one]secondValue' 的区域 注意:我没有使用直接写入上面一行的字符串,我使用的是语法为 $variableName 的 bash 变量代替 secondValue

问题是:

variables:
- name: one
  value: "initialValue" 

steps:
- task: Bash@3
    inputs:
        targetType: 'inline'
        script: |
            valueTwo="New Value"
            echo '##vso[task.setvariable variable=one]$valueTwo'
    displayName: "Change Variable"

- task: Bash@3
    inputs:
        targetType: 'inline'
        script: |
            echo $(one)
    displayName: "Check Variable Has Changed"

预期输出:New Value 实际输出:$valueTwo

这里调用的参数展开没有在单引号内执行,所以用双引号:

            echo "##vso[task.setvariable variable=one]$valueTwo"