Echo 在 Azure Pipelines 的 YAML 文件中打印出不同的东西
Echo in the Azure Pipelines's YAML file prints different things
我的 Azure 管道 YAML 文件中有此代码:
steps:
- bash: |
echo $(date +%Y)
echo "##vso[task.setvariable variable=buildName]$(date +%Y)_$(date +%m)_$(Build.BuildNumber)_v3.7"
echo $BUILDNAME
第一个 echo
正确打印 2020
,但第三个 $(date +%Y)_$(date +%m)_4728573844_v3.7
。如您所见,这里的年份和月份并未转换为值。为什么?
这是由 variable
的 limitation 引起的预期操作。
To set a variable from a script, you use the task.setvariable logging
command. This doesn't update the environment variables, but it does
make the new variable available to downstream steps within the same
job.
简而言之就是当你在Bash任务中使用task.setvariable
命令新建一个变量时,你创建的变量在当前Bash 任务。它仅在后续步骤中可用。
所以,在这里,当您添加另一个 Bash 任务和 echo
您创建的这个变量时 buildName
。您将看到它已成功创建:
steps:
- bash: |
echo $(date +%Y)
echo '##vso[task.setvariable variable=buildName]$(date +%Y)_$(date +%m)_$(Build.BuildNumber)_v3.7'
- bash: |
echo $(buildName)
我的 Azure 管道 YAML 文件中有此代码:
steps:
- bash: |
echo $(date +%Y)
echo "##vso[task.setvariable variable=buildName]$(date +%Y)_$(date +%m)_$(Build.BuildNumber)_v3.7"
echo $BUILDNAME
第一个 echo
正确打印 2020
,但第三个 $(date +%Y)_$(date +%m)_4728573844_v3.7
。如您所见,这里的年份和月份并未转换为值。为什么?
这是由 variable
的 limitation 引起的预期操作。
To set a variable from a script, you use the task.setvariable logging command. This doesn't update the environment variables, but it does make the new variable available to downstream steps within the same job.
简而言之就是当你在Bash任务中使用task.setvariable
命令新建一个变量时,你创建的变量在当前Bash 任务。它仅在后续步骤中可用。
所以,在这里,当您添加另一个 Bash 任务和 echo
您创建的这个变量时 buildName
。您将看到它已成功创建:
steps:
- bash: |
echo $(date +%Y)
echo '##vso[task.setvariable variable=buildName]$(date +%Y)_$(date +%m)_$(Build.BuildNumber)_v3.7'
- bash: |
echo $(buildName)