Jak mógłbym uciec z całej linii w YAML? Chcę mieć json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}'
na liście, ale nie mogę go sparsować na ciąg znaków. Mogę umieścić pojedyncze cytaty na całej linii, ale wtedy będę musiał uciec z każdego cytatu w moim ciągu, co bardzo utrudnia czytanie. Łańcuch zostanie uruchomiony jako komenda bash w Travis CICytując YAML (dla Travis CI)
9
A
Odpowiedz
8
Najbardziej eleganckim rozwiązaniem jest użycie wskaźnika literal style|
, z modyfikatorem -
rozebrać końcową linią. W ten sposób nie ma potrzeby dodatkowych kwotowań.
Jeśli to skalarna okazuje się być jedyną rzeczą w użyciu plików YAML:
|-
json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}'
jeśli jest to wartość mapowanie dla kluczowego abc
:
abc: |-
json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}'
lub jeśli jest częścią lista:
- |-
json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}'
1
Nie jestem pewien, czy istnieje rozwiązanie, które tworzy linie ucieczki, które ciągi i ułatwiają czytanie.
FYI właśnie to, że ciąg wygląda uciekł:
script: ! 'your_cmd json=''{"title": "travis_saulshanabrook_site","key": "''$(cat ~/.ssh/id_rsa.pub)''"}'''