[ "$1" = "" ]ve [ -z "$1" ]tam olarak bash ve diğer POSIX uyumlu kabuklarda eşdeğerdir. (Sözcüğü olmayan bir kurucu karakter olmadığı sürece, parantezlerin her iki tarafında bir boşluk olması gerektiğini unutmayın ;.)
[başkaları gibi yerleşik bir kabuktur; Aslında, aynı zamanda hecelenebilir test(ikisi arasındaki tek fark , son bir argüman [gerektiren bir şeydir ]). Koşarsan Yani [ "$1" = "" ]birlikte $1genişleyen -ztest operatörü üç argüman görüyor: -z,= ve boş dize. Bazı eski Bourne mermileri, bazen tam bir ifadede belirsizlik olmasa bile, bir operand bu şekilde bir operatöre benziyorsa ayrıştırma hataları atar. Herhangi bir sürümün aslında bu ifadeyle sorun yaşayıp yaşamadığını bilmiyorum, ancak daha karmaşık ifadeler onları atabilir. Boş kelimelerle ilgili sorunlu sürümler de olabilirdi; bunlar da desteklemeyecekti [ -z "$1" ]. Ortak bir kabuk deyim[ x"$1" = x"" ]. İşleçlerin işleç olarak ayrıştırılma riskini ortadan kaldırır, çünkü hiçbir operatör bir harfle başlamaz.
Ksh, bash ve zsh'da çift dirsek sözdizimini kullanabilirsiniz [[ -z $1 ]]. Bu daha yeni sözdizimi (1970'lerin ortalarından ziyade 1980'lerin sonlarından itibaren) sıradan bir yerleşik yerine özel bir sözdizimsel yapı kullanarak operatörlerin ayrıştırılması riskini ortadan kaldırır. Operatörler kelimenin tam anlamıyla, iki parantez içinde belirtilmemiş olarak görünmelidir ve değişken genişlemelerin iki katına çıkmanıza gerek yoktur.