将VSTS输出变量设置为bash命令的结果

Dav*_*son 8 azure-devops azure-pipelines-build-task azure-pipelines azure-pipelines-release-pipeline

我在VSTS中运行一个任务,它对上一步的变量执行一些操作,然后我需要输出结果以便在将来的任务中使用.我在Linux构建主机上运行的命令行任务中有以下内容,但在尝试稍后使用$(podName3)时使用结果时没有运气.

COMMAND="$(echo '$(pods)' | grep -oh -P '[^ ]*' | grep schema)"
##vso[task.setvariable variable=podName3]"$COMMAND"
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几个不同的变化无济于事,需要一些方向,因为这已经困扰了我太久了

And*_*SFT 11

似乎语法不正确.

试试以下格式:

COMMAND="$(echo '$pods' | grep -oh -P '[^ ]*' | grep schema)"
echo "##vso[task.setvariable variable=podName3]$COMMAND"
Run Code Online (Sandbox Code Playgroud)

或者添加一个powershell任务并运行以下命令来设置变量:

$COMMAND="$(echo '$env:pods' | grep -oh -P '[^ ]*' | grep schema)"

Write-Host "##vso[task.setvariable variable=podName3]$COMMAND"
Run Code Online (Sandbox Code Playgroud)

更多信息请参阅在脚本中定义和修改变量

  • 感谢您让我走上了正确的道路,我认为这主要是因为看一件事太久了。解决方案本质上只是正确地将语法格式化为以下内容,该语法评估变量,然后将其分配给输出变量。COMMAND=$(echo '$(pods)' | grep -oh -P '[^ ]*' | grep schema) echo "##vso[task.setvariable variable=podName3]${COMMAND}" (2认同)