M. Vazquez-Abrams oldukça haklı. Bu tırnak işareti olan şeyleri kurmak için hiç bir şey değildir zaten dizeleri içine dizeleri veya bazı inatçı bir fikir =içinde bash'ler dahili [komuta bir dize karşılaştırma dışında bir. (Bash Kullanım Kılavuzunun § 6.4'ünü okuyunuz, millet!) Alanlara ayrılmasından sonra boş alanlara olanları, kelimeleri alanlara dönüştürür.
Kabuk değişkeni loopboşsa veya boşsa, $loopboş bir alana genişler. Alan ayrıldıktan sonra boş alanlar atılır. Alan bölmenin ve boş alanların kontrolünün fiyat teklifinin kaldırılmasından önce olduğunu unutmayın . Yani "$loop"alanına genişler ""olduğunu değil boş ve böylece kaldırılmaz. Alıntı kaldırıldıktan sonra boş bir alandır, bu komut için boş bir argüman haline gelir.
[Komut onun gerektirir =iki işlenen, baş ve kıç sahip operatörün. Başka bir şey bir sözdizimi hatasıdır. Boş bir alan kaldırıldığından, sözcüklerin sırası
[$ loop = true]
dört alana genişler
[
=
true
]
ne zaman [komut ihtiyacı beş sözdizimsel doğru olduğu:
[
-
=
true
]
Tabii ki, boş dize dört karakterli dizgeye eşit değildir trueve komutun çıkış durumu sıfır değildir.
Yine, bunların tümü, §3.5 ve §3.5.7'deki Bash Kullanım Kılavuzundadır. El kitabı senin arkadaşın.