Bazı tarihi kabuklar [ -n = "" ], ilk işlenenin =bir operatör gibi göründüğü yerlerin kafasını karıştırabilen ve bunu ayrıştırma [ -n = ]veya sözdizimi hatasına neden olabilecek çok basit bir çözümleyici uyguladı . Olarak [ "x$1" = x"" ], xönek teminat altın x"$1"muhtemelen operatör gibi bakmak ve tek yolu bu yüzden bu testi ayrıştırabilir kabuk muamele etmektir olamaz =ikili operatör olarak.
Tüm modern mermiler ve hatta hala daha eski mermiler hala çalışır durumda olsa bile, 4 kelimeye kadar tüm test ifadelerinin doğru şekilde ayrıştırılmasını zorunlu kılan POSIX kurallarına uyun . Yani [ -z "$1" ]eğer test uygun bir yoldur $1boş ve [ "$x" = "$y" ]iki değişkenin eşitliğini test etmek için uygun bir yoldur.
Bazı mevcut mermiler bile daha uzun ifadelerle karışabilir ve birkaç ifade aslında belirsizdir, bu nedenle daha uzun boole testleri oluşturmak için -ave -ooperatörlerini kullanmaktan kaçının ve bunun yerine [kabuğun kendi &&ve ||boole operatörlerine ayrı çağrılar kullanın .
shticari Unicilere dayanan bazı ksh88'ler hala sorunlu. Detaylar için buraya bakınız.