Переменные и кавычки

Тема дорожной карты · Linux & Unix Fundamentals

Переменные оболочки — это нетипизированные строки: name=value (без пробелов вокруг =), export NAME пробрасывает в окружение, ${NAME:-default} задаёт значение по умолчанию. Кавычки управляют раскрытием: одинарные — буквальные, двойные сохраняют пробелы, но раскрывают $var и $(cmd); без кавычек идёт word-splitting и globbing — источник массы багов. По умолчанию пишите "$var", предпочитайте printf '%s\n' команде echo и прогоняйте скрипты через shellcheck.

Переменные и кавычки играют ключевую роль в управлении данными и выполнении команд в Bash. Они позволяют эффективно управлять конфигурациями, переменными окружения и другими параметрами, что делает скрипты более гибкими и адаптивными.

Как это работает

Переменные и кавычки оборачивает CLI в язык. Начинайте с #!/usr/bin/env bash + set -euo pipefail + IFS=$'\n\t'. Переменные: name="value"; обращение: $name или ${name}. Управление: if/then/fi, for x in ...; do; done, while, case. Функции: f() { ...; }. Subshell $(cmd), арифметика $((1+2)). Trap сигналы для cleanup (trap "rm -f $tmpfile" EXIT). Прогоняйте shellcheck на каждом скрипте.

В Bash переменные могут использоваться для хранения различных значений, таких как строки, числа и даже массивы. Кавычки помогают контролировать, как эти значения раскрываются и обрабатываются в командной строке. Например, двойные кавычки позволяют сохранить пробелы и использовать специальные символы, такие как $ и $(...).

Когда применять

Bash — для оркестрации: цепочки команд, разбор CLI-флагов через getopts, простая работа с текстом, deployment-клей. Переходите на Python или Go, когда скрипт переваливает ~200 строк, обрастает сложными структурами данных или требует надёжной обработки ошибок. Всегда тестируйте на не-production хосте; идемпотентность важна (скрипт, который можно перезапустить, в разы лучше падающего на retry).

Переменные и кавычки особенно полезны при управлении конфигурациями и параметрами в Bash. Они позволяют легко изменять значения переменных в зависимости от условий и контекста. Например, можно использовать переменные для хранения путей к файлам, значений конфигурации или других параметров, которые могут меняться в процессе выполнения скрипта.

Типичные ошибки

Ловушки Переменные и кавычки: не выставлен set -e — упавшая команда тихо продолжает; word-splitting на незакавыченных переменных (for f in $files ломается на пробелах); путаница = (присваивание) и == (сравнение в [[ ]]); арифметика в $() вместо $(()); bash-фичи в /bin/sh-shebang (dash на Debian — не bash). Shellcheck ловит 90% — поставьте.

Типичные ошибки при работе с переменными и кавычками в Bash могут привести к непредвиденным результатам. Например, если не использовать двойные кавычки вокруг переменной, Bash может интерпретировать пробелы в значении переменной как разделители аргументов. Это может привести к неправильному выполнению команд и ошибкам в скриптах.

Связанные понятия

Полезные ресурсы