You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在YAML中实现两个变量的拼接?拼接失败问题求助

解决YAML变量拼接失败的问题

我来帮你搞定这个变量拼接的问题!你现在遇到的核心问题是:YAML本身是静态配置语言,不支持直接用+号来做变量字符串拼接,得根据你使用的CI/CD平台(比如Azure DevOps、GitHub Actions)的语法规则来实现。

下面针对最常见的场景给出可行方案:

场景1:Azure DevOps Pipelines(你的变量定义格式和它匹配)

Azure DevOps支持用${{ ... }}表达式语法来实现变量的动态引用和拼接,修改你的变量定义如下:

variables:
  - name: Table
    value: 'table'
  - name: Tennis
    value: 'tennis'
  - name: Combine
    value: ${{ variables.Table }} is ${{ variables.Tennis }}

这样Combine变量的输出就是你想要的table is tennis了。

补充:如果需要在脚本步骤中拼接

如果是在后续的流水线步骤里生成这个组合值,也可以直接在脚本中引用变量:

  • PowerShell示例:
steps:
- powershell: |
    $combinedValue = "$(Table) is $(Tennis)"
    Write-Host "组合结果:$combinedValue"
  • Bash示例:
steps:
- bash: |
    combinedValue="$(Table) is $(Tennis)"
    echo "组合结果:$combinedValue"

场景2:GitHub Actions

如果是在GitHub Actions中,变量引用和拼接的语法略有不同,使用${{ vars.变量名 }}或者环境变量${{ env.变量名 }}:

env:
  Table: 'table'
  Tennis: 'tennis'
  Combine: ${{ vars.Table }} is ${{ vars.Tennis }}

或者在步骤中使用:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: 输出组合值
        run: echo "${{ env.Table }} is ${{ env.Tennis }}"

关键总结

不管用哪个平台,核心都是:YAML本身不支持原生的+号字符串拼接,必须使用平台提供的表达式语法来引用变量并完成拼接。

内容的提问来源于stack exchange,提问作者ksk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 14:49:08