Ты хочешь проверить:
ㅤ
— В первой коробке хуи?
— Во второй коробке пики?
Если оба условия верны, ты говоришь — заебись!.
Бэд практика:
[ "хуи" = "коробка1" -a "пики" = "коробка2" ]
Тут
-a (И) считается устаревшим и в некоторых случаях это работать не будет. Так что если такое видишь или пишешь, сразу сноси, это хуйня!Одна из проблем с [ A = B -a C = D ] (или -o) в том, что POSIX не определяет, как должна работать команда [ ... ], если у неё больше 4 аргументов.
Бест-практика:
Разделяем на две проверки:
[ "коробка1" = "хуи" ] && [ "коробка2" = "пики" ]
Сначала проверяется первое условие, затем второе.
Если оба верны — команда выполнится.
Либо делаем конкретно под Bash:
[[ "коробка1" = "хуи" && "коробка2" = "пики" ]]
Здесь можно использовать
&&, всё будет работать правильно.Выводы:
Если используешь
[ ... ], то делай две отдельные проверки.Если
[[ ... ]], то можно писать всё внутри.tags: #bash #badpractices #bestpractices
—
🔔 @bashdays➡️ @gitgate