Конкатенация строк в Bash — 3 способа
Конкатенация в Bash — это объединение двух или более строк. В Bash это можно сделать с помощью оператора +=, последовательной записи переменных или printf; примеры и рекомендации в статье.
Конкатенация в Bash — это объединение двух или более строк. В Bash это можно сделать с помощью оператора +=, последовательной записи переменных или printf; примеры и рекомендации в статье.
Цикл for в Bash помогает автоматизировать повторяющиеся задачи: перебирайте числа, строки, списки файлов и используйте шаги, условия и встроенные утилиты. В статье — синтаксис, практические примеры, альтернативы, распространённые ошибки и чек-листы для разработки и тестирования скриптов.
Переменные в Bash — это имена для строк и чисел, используйте $NAME для подстановки, экспортируйте только то, что нужно, и всегда кавычьте значения с пробелами. Проверяйте ввод и отлаживайте через echo.
Двойные скобки [[ ]] в Bash дают удобный синтаксис с поддержкой globbing и regex; [ ] и test — POSIX-совместимая альтернатива для портируемости. Используйте nullglob и массивы для безопасной проверки шаблонов файлов.
Покажу надёжный шаблон для построчного чтения файлов в Bash, объясню подводные камни и дам практические альтернативы и чек‑листы для продакшен‑скриптов. Используйте IFS=, ключ -r и конструкцию || [[ -n ]] для корректной обработки последних строк без перевода строки.
printf в Bash даёт точный контроль над выводом: форматные спецификаторы, ширина и точность полей, обработка escape-последовательностей и аккуратное объединение аргументов. Используйте echo для простого вывода, а printf — когда нужна выровненная или детерминированная печать.
Используйте `>` для перезаписи файла, `>>` для добавления, а `tee` — чтобы одновременно видеть вывод в терминале и записать его. Не забудьте о stderr и ротации логов.
Bash предоставляет встроенные операторы и синтаксис для создания, изменения и извлечения частей строк без внешних утилит. Для простых задач используйте встроенные возможности; для сложных преобразований — awk/sed.
Оператор case в Bash сравнивает одно значение с набором шаблонов и выполняет код для совпадающего случая. Используйте ;; для закрытия ветки, * для обработчика по умолчанию и | для перечисления альтернатив.
Семафор — это примитив синхронизации, который ограничивает одновременный доступ к ресурсу. В Bash безопаснее использовать атомарные файловые блокировки (flock, mkdir) вместо простых переменных. В статье есть примеры, шаблоны тестов, чек-листы и несколько практических реализаций семафоров для скриптов.
Добавьте в начало скрипта строгие опции set (-e, -u, -o pipefail) — они заставят скрипт завершаться при ошибках, ловить неинициализированные переменные и перехватывать сбои внутри пайпов. Для диагностики используйте set -x и trap ERR; для ситуаций, где нужен исключающий контроль, применяйте явную проверку кодов возврата.
Конкатенация — это простое объединение значений. В Bash строки соединяют с помощью оператора +=, последовательной записи переменных, параметрического расширения и printf. Важно правильно экранировать и кавычить переменные, чтобы избежать разбиения слов и уязвимостей.
eval полезен для выполнения динамически сформированных команд в текущем шелле, но опасен при работе со строками из ненадёжных источников. Используйте альтернативы (parameter expansion, command substitution, declare -n, printf -v), применяйте проверку и белые списки, и используйте eval только когда других опций нет.
Этот документ объясняет основные приёмы «defensive programming» в Bash: корректный shebang, всегда заключать переменные в кавычки, останавливать скрипт при ошибках, отладка через xtrace, защита от имён файлов‑подвохов и локальные переменные в функциях.