首页 > 解决方案 > 如何从子命令分配变量?

问题描述

我正在尝试生成一个字符串并将其分配给我想在以后的任务中使用的变量。

尝试通读文档,但没有任何示例说明如何执行此操作。

使用Bash@3

不工作

      GITSHA=$(git rev-parse --verify HEAD | cut -c1-10)
      echo '##vso[task.setvariable variable=tag]$(1.0.0-${GITSHA})'
      echo $TAG

不工作

      GITSHA=$(git rev-parse --verify HEAD | cut -c1-10)
      echo '##vso[task.setvariable variable=tag]1.0.0-${GITSHA}'
      echo $TAG

不工作

      GITSHA=$(git rev-parse --verify HEAD | cut -c1-10)
      echo '##vso[task.setvariable variable=tag]"1.0.0-${GITSHA})"'
      echo $TAG

我希望有一种方法可以在脚本期间生成一个值并使用这种机制分配它,以便可以在下游任务中使用它。

标签: azure-devops

解决方案


如何从子命令分配变量?

似乎语法不正确。

请尝试以下格式:

GITSHA=$(git rev-parse --verify HEAD | cut -c1-10)
echo "##vso[task.setvariable variable=tag]1.0.0-$GITSHA"

然后该变量应该在下一步中起作用,您可以使用命令行显示它:

steps:
- script: |

   echo $(tag)

此外,您可以使用命令行任务并运行以下命令来设置变量:

set GITSHA=(git rev-parse --verify HEAD | cut -c1-10)
echo '##vso[task.setvariable variable=tag]1.0.0-%GITSHA%

推荐阅读