Что проверяет [ "$NAME" = "John" ]?
[ "$NAME" = "John" ]
Равно ли строковое значение NAME точно John; кавычки защищают от пустых значений и значений с пробелами.
John
Существует ли файл с именем John.
Присваивает ли это John переменной NAME.
Равно ли NAME численно John.