Бебебед практики bash, продолжаем.
Нельзя просто так взять условие из языка «Сиськи» и заменить его на квадратные скобки.
Сколько ни повторяй, один хер делают неправильно.
Команда [ — это не просто скобка, а отдельная команда. Она проверяет, пиздёж ли что-то или нет.
Хуёвая практика:
if [ a = b ] && [ c = d ]; then
...
fi
В этом примере сначала проверяется a = b, если это пиздёж — дальше ничего не выполняется.
Если же a = b НЕ пиздёж — тогда проверяется c = d. И если c = d НЕ пиздёж, то выполняется то, что внутри then.
Бест-практика! Зырь!
if [[ a = b && c = d ]]; then
...
fi
Делаем двойные скобки. Двойные скобки умеют работать с && внутри.
[[ ... ]] — это специальная команда Bash, которая используется для проверки условий. Она умнее и безопаснее, чем обычная [ ... ].
Внутри неё можно использовать логические операторы && (и) и || (или) без дополнительных скобок или дополнительных [.
Рассмотрим пример:
a="hello"
b="hello"
c="bashdays"
d="bashdays"
if [[ $a = $b && $c = $d ]]; then
echo "Условия совпали!"
fi
[ — работает с одним условием за раз.
[[ — может работать с комбинированными условиями прямо внутри себя.
Для тупых Кто до сих пор не понял:
Представь, что ты говоришь своей бабушке: Если я убрал в комнате И сделал уроки, я могу поиграть в девопс-инженера.
Ну так вот:
[[ ... ]] — это бабушка, которая за всю свою жизнь повидала много дерьма и вполне может понять твою сложную фразу: убрал И сделал уроки.[ ... ] — это твой младший брат, пиздюк ещё не в состоянии воспринимать такие большие выпады, и ему нужно говорить частями.
Вот и вся наука. Изучай!








Комментарии