0

请看下面的代码。在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 
4

1 回答 1

1

老实说,这对我来说很有意义。您运行该命令,一旦当前任务完成运行##vso[task.setvariable],它将使该变量可用于后续任务。它不会改变当前任务的环境。由于您显然已经拥有当前任务中可用的数据,因此没关系。

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

于 2020-12-09T15:28:24.807 回答