Да, они ( [ -z "$VAR" ]
и [ "$VAR" = "" ]
...) эквивалентны. Оба проверяют пустоту $VAR
(например, когда она не связана или установлена в пустую строку).
Как прокомментировал Celada , плохие вещи могут произойти при использовании [ "$VAR" = "" ]
if, если VAR
какой-то действительный тест (например, если VAR
есть -z
), в частности, когда [
(или test
) не является встроенной оболочкой. Но bash
или является встроенной и что , кажется, не является проблемой. Вы могли бы использовать для своего теста. Смотрите тест (1)zsh
[
[ "x$VAR" = "x" ]
Конечно, я предполагаю некоторую оболочку POSIX или что-то подобное.
Возможно, это -z
может быть немного быстрее (но вам не нужно заботиться о микросекундах в сценариях оболочки), и вы, возможно, найдете =
более читабельным.
==
неверный синтаксис, но работает во многих оболочках (вероятно, потому что это мышечная память для всех, кто использует другие языки). Вы должны использовать=
.