Подводные камни в Bash №8
В Bash конструкция [ ... ] — не часть синтаксиса if, а отдельная команда, аналогичная test. Разбираем, как на самом деле выполняются условия и почему это важно для скриптов.
Фото: Markus Spiske / Pexels
Фото: Emre Karademir / PexelsЗдесь собраны все публикации блога Bashdays — заметки про Linux, DevOps и айтишные технологии.
В Bash конструкция [ ... ] — не часть синтаксиса if, а отдельная команда, аналогичная test. Разбираем, как на самом деле выполняются условия и почему это важно для скриптов.
Фото: Markus Spiske / PexelsОн считает, сколько строк в файле bar.txt содержат слово foo. Здесь главная проблема — переменная count не изменится вне цикла while, потому что в Bash каждая команда в пайплайне (|) запускается в отдельной оболочке (subshell). То …
Фото: Sergei Starostin / PexelsКонструкция [[ ... ]] в Bash предназначена для проверки условий, но не для арифметики. Разбираем ошибочное сравнение и правильное применение (( ... )) для чисел.
Фото: Markus Spiske / PexelsПредставь две коробки с созвучными подписями. Разбираемся, как Bash интерпретирует строки и почему одинаково выглядящие условия могут давать неожиданный результат.
Фото: Chia-Ho Lin / PexelsЭто ошибочный вариант, бэд мать его практика. Команда cd $(dirname "$f") должна вернуть путь к папке, где лежит файл.
Фото: Sergei Starostin / PexelsКогда в Bash сравниваешь две переменные, важно не про***ться с кавычками. Разбираем, что произойдёт, если переменная $foo окажется пустой.
Фото: Connor Scott McManus / PexelsК предыдущему посту было написано достаточно много полезных комментариев и один из них представляет собой очень достойный чек-лист от Андрея. Вся годнота внутри 👇 Сообщи начальнику: "Упал прод. Разбираюсь в проблеме. Займет Х мин"
Фото: Bulat843 🌙 / PexelsПредставь: ты работаешь в компании единственным специалистом в своей роли. Ты что-то закоммитил, прод у***лся — с кого спросят и кто должен исправлять последствия?
Фото: Alexey Demidov / PexelsТакс, как и обещал притаранил тебе рабочий пайплайн для авто деплоя mkdocs через gitea. Чтобы всё это заработало, в проекте тебе нужно создать структуру:
Фото: HONG SON / PexelsВчера после статьи про CrowdSec много ребят обратились с вопросом — мужик, а чё за движок такой у твоего блога? Отвечу сразу всем. Это не движок, это статика. И сделана она при помощи фреймворка MKDocs + Material.
Фото: Mitchel Onwuchuruba / PexelsПродолжаем погружаться в Бэд-Практики! В прошлом посте мы рассмотрели файлы, которые начинаются с дефиса и то, что команда cp их может воспринимать как флаг. Ну дак вот. Предыдущие посты про Бэд-Практики ищи по тегу pitfalls Как …
Фото: Vie Studio / PexelsНу вот и обзор. В большей части это вольный перевод официального сайта приложения и картинки оттуда, но есть вставки с моей инсталляции. Ссылки на многие описания сохранены. Я не использую весь потенциал продукта - это прям сто …
Фото: Caleb Oquendo / Pexels