2012-05-13 6 views
9

¿Cómo escapo una línea completa en YAML? Quiero tener json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}' en una lista, pero no puedo convertirlo en una cadena. Puedo poner comillas simples alrededor de toda la línea, pero luego tendría que escapar cada cita de mi cadena, lo que hace que sea muy difícil de leer. La cadena se ejecuta como un comando de bash en Travis CICitando a YAML (para Travis CI)

Respuesta

8

La solución más elegante es usar el indicador literal style|, con el modificador - despojar a la nueva línea final. De esta forma no hay citas adicionales necesarias.

Si esto escalar pasa a ser la única cosa en la utilización archivo YAML:

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

si se trata de un valor de asignación de clave abc:

abc: |- 
    json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}' 

o si es parte de una lista:

- |- 
    json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}' 
1

No estoy seguro de que hay una solución que hace que se escapa de cuerda y hace que sea fácil de leer.

FYI esto es lo que parece escapado de cadena:

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