11

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

4

2 回答 2

11

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

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

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

如果它是 key 的映射值abc

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

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

- |-
  json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}'
于 2015-06-30T06:42:24.810 回答
0

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

仅供参考,这就是该字符串看起来像已转义的内容:

script: ! 'your_cmd json=''{"title": "travis_saulshanabrook_site","key": "''$(cat ~/.ssh/id_rsa.pub)''"}'''
于 2012-10-22T13:27:25.343 回答