我如何在YAML中逃脱整条线?我想在列表中包含json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}'
,但我无法将其解析为字符串。我可以在整行上放置单引号,但是我必须在我的字符串中删除每一个引号,这使得它很难阅读。该字符串将作为Travis CI
答案 0 :(得分:9)
最优雅的解决方案是使用literal style |
指示符和-
修饰符来删除最终换行符。这样就没有必要的额外报价了。
如果这个标量恰好是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)'"}'
答案 1 :(得分:1)
我不确定是否有一个解决方案可以使字符串和的转义变得容易阅读。
仅供参考,这就是该字符串看起来像转义的内容:
script: ! 'your_cmd json=''{"title": "travis_saulshanabrook_site","key": "''$(cat ~/.ssh/id_rsa.pub)''"}'''