引用YAML(为Travis CI)

11

如何在YAML中转义一整行?我想将json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}'放进列表中,但无法解析为字符串。我可以在整个行周围加上单引号,但这样我就必须转义我的字符串中的每一个单引号,让它变得难以阅读。该字符串将在Travis CI中作为bash命令运行。

2个回答

11

最优雅的解决方案是使用文字样式|指示符,并使用-修饰符以剥离最后一个换行符。这样就不需要额外的引号了。

如果该标量恰好是YAML文件中唯一的内容,请使用:

|-
  json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}'

如果它是键 abc 的映射值:

abc: |-
  json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}'

或者如果它是列表的一部分:

- |-
  json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}'

0

我不确定是否有一种解决方案可以转义该字符串并使其易于阅读。

顺便说一下,这是转义后该字符串的样子:

script: ! 'your_cmd json=''{"title": "travis_saulshanabrook_site","key": "''$(cat ~/.ssh/id_rsa.pub)''"}'''

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接