[ "$1" = "" ]dan [ -z "$1" ]persis sama dalam bash dan shell yang sesuai dengan POSIX lainnya. (Perhatikan bahwa harus ada spasi di setiap sisi tanda kurung, kecuali jika ada karakter konstituen non-kata suka ;.)
[adalah shell built-in seperti yang lain; bahkan bisa juga dieja test(satu-satunya perbedaan antara keduanya adalah yang [membutuhkan ]argumen terakhir). Jadi, jika Anda menjalankan [ "$1" = "" ]dengan $1memperluas ke -z, operator uji melihat tiga argumen: -z, =dan string kosong. Beberapa cangkang Bourne yang lebih tua kadang-kadang menimbulkan kesalahan parse ketika sebuah operan tampak seperti operator dengan cara ini, bahkan jika tidak ada ambiguitas dalam ekspresi lengkap. Saya tidak tahu apakah ada versi yang benar-benar memiliki masalah dengan ungkapan khusus ini, tetapi ekspresi yang lebih kompleks dapat membuangnya. Mungkin juga ada versi yang bermasalah dengan kata-kata kosong; ini juga tidak akan mendukung [ -z "$1" ]. Idiom shell yang umum adalah[ x"$1" = x"" ]. Ini menghindari risiko memiliki operan diurai sebagai operator karena tidak ada operator yang memulai dengan surat.
Di ksh, bash dan zsh, Anda dapat menggunakan sintaks braket ganda [[ -z $1 ]],. Sintaks yang lebih baru ini (berasal dari akhir 1980-an daripada pertengahan 1970-an) menghilangkan risiko memiliki operan diurai sebagai operator dengan menggunakan konstruksi sintaksis khusus daripada built-in biasa. Operator harus muncul secara harfiah, tidak dikutip dalam kurung ganda, dan Anda tidak perlu menggandakan ekspansi variabel penawaran.