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








Комментарии