Bu çok satır dize (tırnak dahil) var:
abc'asdf"
$(dont-execute-this)
foo"bar"''
Bash'ta bir yorumlu metin kullanarak bir değişkene nasıl atayabilirim?
Yeni satırları korumam gerekiyor.
Dizedeki karakterlerden kaçmak istemiyorum, bu sinir bozucu olurdu ...
"EOF"değişkendeki bash yorumları "#" , çağrılırsa eval $VAR, komut dosyasının geri kalanının yorumlanmasına neden olur, çünkü burada $ VAR tek bir satır olarak görülecektir ; bash #yorumlarını çok satırlı komut dosyasında kullanabilmek için çift eval call: tırnaklı "eval" $ VAR değişkeninde de değişkendir .
evalBu yöntemlerle ilgili sorunlar yaşadım , ancak evalyapılandırma dosyasında tanımlanan bazı değişkenler olan bazı paketlerin bir parçası olduğu için izlemedim . Hata mesajı vardı: /usr/lib/network/network: eval: line 153: syntax error: unexpected end of file. Yeni bir çözüme geçtim.
'EOF'ile kaçan satır satırları ile tek tırnaklı bir yorumlu atama denedim` in the content: if the second line has, ben geri alıyorum: " .sh: line X: cd: komut bulunamadı "; ama çift tırnak koyarsam"EOF"; bash değişkenleri${A}dize olarak korunmaz (genişler); ama sonra, hat sonları vardır korunmuş - Ben bir komutu çalıştırarak bir sorun yok vecdikinci satırda ( ve hem 'EOF' ve "EOF" iyi de oynamak gibievalsaklanan komutlar kümesi çalıştırmak için, dize değişkeni ). Şerefe!