Перейти к содержанию

Все посты

Подводные камни в Bash №9

Команда if [ bar = "$foo" ]; проверяет, равны ли два значения.

Тут самое важно это — пробелы, про кавычки повторять не буду, ты это уже и так знаешь. Все уши прожужал.

Неправильно:

[bar="$foo"] 
[ bar="$foo" ]
[[bar="$foo"]]
  1. Нельзя слеплять всё вместе. Это хуёва даже в плане кодстайла.
  2. Нет пробела вокруг знака «=».
  3. Аналогично, всё слеплено.

Управления версиями Terraform, Terragrunt, OpenTofu, Atmos.

Привет, один из наших подписчиков попросил анонсировать его пепяку. Она уже пролетала в gitgate, но ничего страшного, пусть и тут полежит. Тем более штука маст-хэвная.

TENV Ёпта!

Если кратко, TENV это консольный менеджер для управления версиями Terraform, Terragrunt, OpenTofu, Atmos.

Подводные камни в Bash №8

Вот те на!

if [ false ]; then echo "HELP"; fi

Большинство думает, что [ — это часть команды if как скобки в других языках программирования. Но нихуя!

В Bash if просто запускает команду. Команда [ ... ] — это обычный бинарник, аналогично команде test, а не специальный синтаксис.

Скобка ] нужна только для красоты и завершения команды [.

Почему я стал использовать блокировку экрана

С пятницей ребят. Бест-практики по башу уже знатно подзаебали, держись осталось немного, там за дебаг затрем, подкопилось у меня знатной дичи.

Сегодня поделюсь с тобой почему я стал использовать блокировку экрана перед тем как отойти от консольки.

Нет, не от злых черно-шляпных, смысла в этом мало, блокировка тут не решает.

Дело было так. Лет 10 назад я открыл putty, подключился к проду и пошел навалить себе кофеёв с печенькой. Навалил. Вернулся. На клавиатуре мило устроился кот.

Подводные камни в Bash №7

Продолжаем делать правильно.

Этот код выглядит вполне нормально:

grep foo bar.txt | while read -r; do ((count++)); done

Он считает, сколько строк в файле bar.txt содержат слово foo.

Здесь главная проблема — переменная count не изменится вне цикла while, потому что в Bash каждая команда в пайплайне (|) запускается в отдельной оболочке (subshell). То есть count++ происходит «внутри», и снаружи этого не видно.