Подводные камни в Bash №5
Представь, что у тебя есть две коробки. На одной написано «хуи дрочёны», а на другой «пики точены».
читать первым в телеграм читать первым в макс
Ты хочешь проверить:
— В первой коробке хуи? — Во второй коробке пики?
Если оба условия верны, ты говоришь — заебись!.
Бэд практика:
[ "хуи" = "коробка1" -a "пики" = "коробка2" ]
Тут -a (И) считается устаревшим и в некоторых случаях это работать не будет. Так что если такое видишь или пишешь, сразу сноси, это хуйня!
Бест-практика:
Разделяем на две проверки:
[ "коробка1" = "хуи" ] && [ "коробка2" = "пики" ]
Сначала проверяется первое условие, затем второе.
Если оба верны — команда выполнится.
Либо делаем конкретно под Bash:
[[ "коробка1" = "хуи" && "коробка2" = "пики" ]]
Здесь можно использовать &&, всё будет работать правильно.
Выводы:
Если используешь [ ... ], то делай две отдельные проверки.
Если [[ ... ]], то можно писать всё внутри.
