Vâng, họ ( [ -z "$VAR" ]và [ "$VAR" = "" ]...) là tương đương. Cả hai đều đang kiểm tra sự trống rỗng của $VAR(ví dụ khi nó không bị ràng buộc hoặc được đặt thành một chuỗi trống).
Theo nhận xét của Celada , những điều tồi tệ có thể xảy ra khi sử dụng [ "$VAR" = "" ] if VARlà một thử nghiệm hợp lệ (ví dụ: nếu VARlà -z), đặc biệt khi [(hoặc test) không phải là một vỏ dựng sẵn. Nhưng trên bashhoặc zshnhững [là một dựng sẵn và điều đó dường như không phải là một vấn đề. Bạn có thể sử dụng [ "x$VAR" = "x" ]cho bài kiểm tra của bạn. Xem thử nghiệm (1)
Tất nhiên, tôi giả sử một số vỏ POSIX hoặc một cái gì đó tương tự.
Có lẽ -zcó thể nhanh hơn một chút (nhưng bạn không nên quan tâm đến micro giây trong các tập lệnh shell) và bạn có thể thấy =có lẽ dễ đọc hơn.
==là cú pháp không chính xác, nhưng hoạt động trong nhiều shell (có lẽ vì đó là bộ nhớ cơ cho bất kỳ ai sử dụng các ngôn ngữ khác). Bạn nên sử dụng=.