Ya mereka ( [ -z "$VAR" ]dan [ "$VAR" = "" ]...) setara. Keduanya menguji kekosongan $VAR(misalnya ketika tidak terikat, atau diatur ke string kosong).
Sebagai berkomentar oleh Celada , hal-hal buruk yang mungkin terjadi saat menggunakan [ "$VAR" = "" ] jika VARbeberapa tes yang valid (misalnya jika VARini -z), khususnya ketika [(atau test) adalah tidak builtin shell. Tapi di bashatau zshyang [adalah builtin dan yang tampaknya tidak menjadi masalah. Anda bisa menggunakan [ "x$VAR" = "x" ]untuk tes Anda. Lihat tes (1)
Tentu saja, saya mengasumsikan beberapa shell POSIX atau yang serupa.
Mungkin -zmungkin sedikit lebih cepat (tetapi Anda seharusnya tidak peduli tentang mikrodetik dalam skrip shell) dan Anda mungkin menemukan =mungkin lebih mudah dibaca.
==adalah sintaks yang salah, tetapi bekerja di banyak shell (mungkin karena itu adalah memori otot untuk siapa saja yang menggunakan bahasa lain). Anda harus menggunakan=.