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

Bitbucket Pipeline中shell case语句语法错误,求正确写法

Bitbucket Pipeline中case...esac语句的正确写法

以下是能正常运行的YAML配置示例,可解决你遇到的语法错误问题:

pipelines:
  default:
    - step:
        name: Execute Case Logic
        script:
          - |
            # 用双引号包裹变量,避免特殊字符或空值引发语法问题
            case "$BITBUCKET_PR_DESTINATION_BRANCH" in
              "$ST_BRANCH")
                echo "处理合并到预发布分支的逻辑"
                # 这里添加你的预发布环境操作命令
                ;;
              "$PR_BRANCH")
                echo "处理合并到生产分支的逻辑"
                # 这里添加你的生产环境操作命令
                ;;
              *)
                echo "目标分支不在预设范围内,执行默认逻辑"
                # 默认分支的处理命令
                ;;
            esac

关键注意事项(也是你之前出错的常见原因):

  • 多行shell脚本的YAML格式:必须用|定义多行脚本,确保Pipeline生成的shell文件保留正确的换行和结构,否则YAML会把脚本拆成多个独立命令,破坏case语句的完整性。
  • 变量引用:所有变量(包括Bitbucket内置变量和自定义工作区变量)都用双引号包裹,防止变量值含空格、特殊字符或为空时触发语法错误。
  • case语法规范:
    • 每个模式结尾必须紧跟)
    • 每个分支的代码块必须用;;结束
    • 最后用esac闭合整个case语句
  • YAML缩进:统一使用空格(建议2个或4个),绝对不能混用制表符,否则会导致脚本解析异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:29:51