Saya memiliki string multi-baris ini (termasuk kutipan):
abc'asdf"
$(dont-execute-this)
foo"bar"''
Bagaimana saya menetapkannya ke variabel menggunakan heredoc di Bash?
Saya perlu mempertahankan baris baru.
Saya tidak ingin lepas dari karakter dalam string, itu akan mengganggu ...
"EOF"variabel qouted ganda , jika dipanggil via eval $VAR, akan menyebabkan semua skrip lainnya dikomentari, karena di sini $ VAR akan dilihat sebagai satu baris ; untuk dapat menggunakan #komentar bash dalam skrip multiline, kutipan ganda juga variabel dalam eval call: eval "$ VAR" `.
evalith metode ini, tetapi tidak melacaknya karena itu adalah bagian dari beberapa paket yang evalbeberapa variabel didefinisikan dalam file konfigurasi itu. Pesan kesalahan adalah: /usr/lib/network/network: eval: line 153: syntax error: unexpected end of file. Saya baru saja beralih ke solusi lain.
'EOF', dengan linebreak lolos dengan` in the content: if the second line hasperintah cd`, saya kembali: " .sh: baris X: cd: perintah tidak ditemukan "; tetapi jika saya double-quote"EOF"; kemudian variabel bash${A}tidak bisa dipertahankan sebagai string (mereka bisa diperluas); tapi kemudian, line-break yang diawetkan - dan, saya tidak memiliki masalah menjalankan perintah dengancddi baris kedua ( dan kedua 'EOF' dan "EOF" tampaknya bermain dengan baik juga denganeval, untuk menjalankan sekumpulan perintah yang tersimpan di variabel string ). Bersulang!