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

如何在YAML中正确转义&&符号 解决GitLab CI流水线脚本报错问题

正确写法(3种可选,推荐优先用第2/3种)

1. 单引号包裹整行

YAML单引号内除单引号本身外,其余字符无需转义,会原样传递给Shell执行:

script:
  - '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"'

注意:单引号不会阻止Shell解析字符串内的$NVM_DIR变量,符合使用需求。

2. 无引号直接书写

只要行内容不会被YAML误判为语法结构,可直接不用任何引号:

script:
  - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

3. 字面量块(多脚本场景最优)

如果后续还要追加nvm install、nvm use等命令,用|块标量完全不需要考虑任何转义问题:

script:
  - |
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
    nvm install 18
    nvm use 18

之前写法的错误原因

  1. 双引号包裹写法报错:YAML双引号会解析转义序列,\.不属于YAML支持的合法转义字符,因此直接报「未知转义字符」错误
  2. 替换&&为&错误:&是HTML转义符,YAML和Shell都不识别该写法,传递给Shell执行时会直接报语法错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:15:02