2012-05-13 55 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)''"}'''