Beberapa shell historis menerapkan parser yang sangat sederhana yang dapat dikacaukan oleh hal-hal seperti di [ -n = "" ]mana operan pertama =terlihat seperti operator, dan akan menguraikannya sebagai [ -n = ]atau menyebabkan kesalahan sintaksis. Dalam [ "x$1" = x"" ], xawalan memastikan bahwa x"$1"tidak mungkin terlihat seperti operator, dan satu-satunya cara shell dapat menguraikan tes ini adalah dengan memperlakukan =sebagai operator biner.
Semua shell modern, dan bahkan sebagian besar shell yang lebih lama masih beroperasi, ikuti aturan POSIX yang mengamanatkan bahwa semua ekspresi uji hingga 4 kata diurai dengan benar. Jadi [ -z "$1" ]adalah cara yang tepat untuk menguji jika $1kosong , dan [ "$x" = "$y" ]merupakan cara yang tepat untuk menguji kesetaraan dua variabel.
Bahkan beberapa shell saat ini dapat dikacaukan dengan ekspresi yang lebih lama, dan beberapa ekspresi sebenarnya ambigu, jadi hindari penggunaan -adan -ooperator untuk membangun tes boolean yang lebih lama, dan alih-alih gunakan panggilan terpisah ke [dan shell milik sendiri &&dan ||operator boolean.
shpada beberapa Unix komersial masih memiliki masalah. Lihat di sini untuk detailnya.