如何在YAML中转义一整行?我想将json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}'
放进列表中,但无法解析为字符串。我可以在整个行周围加上单引号,但这样我就必须转义我的字符串中的每一个单引号,让它变得难以阅读。该字符串将在Travis CI中作为bash命令运行。
如何在YAML中转义一整行?我想将json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}'
放进列表中,但无法解析为字符串。我可以在整个行周围加上单引号,但这样我就必须转义我的字符串中的每一个单引号,让它变得难以阅读。该字符串将在Travis CI中作为bash命令运行。
最优雅的解决方案是使用文字样式|
指示符,并使用-
修饰符以剥离最后一个换行符。这样就不需要额外的引号了。
如果该标量恰好是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)'"}'
我不确定是否有一种解决方案可以转义该字符串并使其易于阅读。
顺便说一下,这是转义后该字符串的样子:
script: ! 'your_cmd json=''{"title": "travis_saulshanabrook_site","key": "''$(cat ~/.ssh/id_rsa.pub)''"}'''