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 VAR
là một thử nghiệm hợp lệ (ví dụ: nếu VAR
là -z
), đặc biệt khi [
(hoặc test
) không phải là một vỏ dựng sẵn. Nhưng trên bash
hoặc zsh
nhữ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ẽ -z
có 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=
.