2012-05-13 27 views
9

Làm cách nào để thoát khỏi toàn bộ dòng trong YAML? Tôi muốn có json='{"title": "travis_saulshanabrook_site","key": "'$(cat ~/.ssh/id_rsa.pub)'"}' trong một danh sách, nhưng tôi không thể làm cho nó phân tích cú pháp thành một chuỗi. Tôi có thể đặt dấu nháy đơn trên toàn bộ dòng, nhưng sau đó tôi sẽ phải thoát khỏi mọi trích dẫn đơn lẻ trong chuỗi của tôi, làm cho nó rất khó đọc. Chuỗi này sẽ được chạy dưới dạng lệnh bash trong Travis CITrích dẫn YAML (đối với Travis CI)

Trả lời

8

Giải pháp thanh lịch nhất là sử dụng các chỉ số literal style|, với sự sửa đổi - tước newline thức. Bằng cách đó không có dấu ngoặc kép thêm cần thiết.

Nếu vô hướng này sẽ xảy ra là điều duy nhất trong việc sử dụng file YAML:

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

nếu nó là một giá trị bản đồ cho chính abc:

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

hoặc nếu nó là một phần của một danh sách:

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

Tôi không chắc có giải pháp nào giúp thoát khỏi chuỗi giúp bạn dễ đọc.

FYI này là những gì chuỗi trông giống như thoát:

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