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 .
eval
Bu yöntemlerle ilgili sorunlar yaşadım , ancak eval
yapı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 vecd
ikinci satırda ( ve hem 'EOF' ve "EOF" iyi de oynamak gibieval
saklanan komutlar kümesi çalıştırmak için, dize değişkeni ). Şerefe!