YAML で行全体をエスケープするにはどうすればよいですか? リストに入れたいjson='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}'
のですが、文字列に解析できません。行全体を単一引用符で囲むことはできますが、文字列内のすべての単一引用符をエスケープする必要があり、非常に読みにくくなります。文字列はTravis CIで bash コマンドとして実行されます
質問する
2009 次
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 に答える