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