带有 bash 的 Yaml:转义字符串中的引号

Yaml with bash: escaping quotes in string

我想在 travis 文件中执行命令,它由 bash 从 yaml 配置文件中执行:

before_script:
 - psql -c 'create role "user" WITH LOGIN PASSWORD '1234'' -U postgres

但显然我得到了错误:ERROR: syntax error at or near ""1234"" 而且我只是不知道如何转义引号:'

这不是 yaml 问题,它只涉及由您的 travis 构建启动的 shell。

shell 字符串中单引号内的单引号被转义为双单引号(有关更多信息,请参阅 this link 以及许多其他引号)

psql -c 'create role "user" WITH LOGIN PASSWORD ''1234''' -U postgres

有时验证 YAML 语法会更好,它可能会因为失败的原因而让您感到惊讶:

使用这个很棒的工具:YAML Formatter