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

Azure DevOps基础YAML脚本echo命令语法报错排查求助

Azure DevOps YAML脚本语法错误排查

问题代码

variables:
    yamlvar : "I'm YAML Variable"
    group : DevGroup

stages:
  - stage: DevStage
    jobs:
     - job: _2019Job
       steps:
        - script: |
           echo $(yamlvar)
           echo $(inputvar)
           echo $(VanisJob)
          displayName: Step1
          name: StepName1

报错信息

line 1: unexpected EOF while looking for matching `''
line 4: syntax error: unexpected end of file
##[error]Bash exited with code '2'.

错误原因

变量yamlvar的值为"I'm YAML Variable",当Bash执行echo $(yamlvar)时,会将变量展开为echo I'm YAML Variable。此时Bash会把单引号'视为未闭合的引号标记,导致语法解析失败。

解决方法

可以通过以下任意一种方式修复:

  • 转义变量中的单引号
    修改变量定义,对单引号进行转义:
yamlvar : "I\'m YAML Variable"
  • 用单引号包裹变量值
    使用单引号定义变量,YAML中通过两个连续单引号表示转义的单引号:
yamlvar : 'I''m YAML Variable'
  • 在echo命令中添加双引号
    修改script步骤里的echo语句,用双引号包裹展开后的变量,避免Bash解析单引号:
- script: |
   echo "$(yamlvar)"
   echo "$(inputvar)"
   echo "$(VanisJob)"
  displayName: Step1
  name: StepName1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 09:57:37