在 Azure devops 管道中设置变量后无法立即打印变量

Unable to print the variable right after set it in Azure devops pipeline

请看下面的代码。无法在 set.variable 任务后立即打印变量!我有感觉并尝试过 set.variable 任务下面的任何内容都不会执行。这太烦人了,我该如何解决?

  - bash: |
      echo "##vso[task.setvariable variable=BUILD_NUMBER]$(Build.BuildId)"
      echo $(BUILD_NUMBER) // BUILD_NUMBER: command not found
    displayName: Set 

  - bash: |
      echo "you shall saw build id below"
      echo $(BUILD_NUMBER) // Same line and this is OK!
    displayName: Print 

老实说,这对我来说很有意义。您 运行 ##vso[task.setvariable] 命令,一旦当前任务完成 运行ning,该变量就可用于后续任务 。它不会改变 current 任务的环境。由于您显然已经拥有当前任务中可用的数据,所以应该无关紧要。

您甚至不需要做您正在做的事情:您可以通过用下划线替换句点来引用变量作为环境变量。 IE。 $BUILD_BUILDID。参考文档。