Подводные камни в Bash №9
Команда if [ bar = "$foo" ]; проверяет, равны ли два значения.
Тут самое важно это — пробелы, про кавычки повторять не буду, ты это уже и так знаешь. Все уши прожужал.
Неправильно:
- Нельзя слеплять всё вместе. Это хуёва даже в плане кодстайла.
 - Нет пробела вокруг знака «=».
 - Аналогично, всё слеплено.
 
Правильный синтаксис:
или
Почему?
Потому что [, =, ] это отдельные символы, первая скобка вообще команда test. А если ты все слепляешь, Bash посчитает тебя долбаёбом и отправит в пешее эротическое.
Главное правило — всегда ставь пробелы между каждым элементом в условии.