2012-05-13 27 views
9

我如何逃避YAML中的整条线?我想在列表中有json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}' ,但是我无法将其解析为字符串。我可以在整行中加上单引号,但是我必须避免字符串中的每一个引号,这使得它很难阅读。该字符串将作为bash命令运行Travis CI引用YAML(适用于Travis CI)

回答

8

最优雅的解决方案是使用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

我不确定是否有解决方案使字符串易于阅读。

FYI这是该字符串看起来像转义:

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