
Shell — незаметная движущая сила всей вашей работы в Linux. Это ваш посредник между вами и программами системы: и интерфейс, и полноценный язык программирования в одном флаконе.
Одна из главных «магий» оболочки — разные виды подстановок прямо в командах, которые вы вводите, например, подстановка переменных. Этот процесс проходит в несколько этапов, и разобраться в них стоит каждому.
- Фигурные скобки: моментально создаём шаблонные списки
- Тильда: быстрый доступ к домашней папке и не только
- Переменные и параметры: Bash умеет больше, чем просто $
- Подстановка команд: автоматизация без границ
- Арифметические операции: вычисляем прямо в Bash
- Разделение на слова: как Bash превращает строки в аргументы команд
- Расширение имён файлов (глоббинг): ищем файлы по шаблонам
- Удаление кавычек: защитите свои аргументы с пробелами
Фигурные скобки: моментально создаём шаблонные списки
Сначала Bash обрабатывает конструкции с фигурными скобками, превращая ваши шаблоны в готовые строки — настоящая экономия времени при создании длинных списков. Классика: внутри скобок через запятую задаём варианты:
Shell превратит такой пример в echo abde acde.
Используйте echo — и сразу увидите результат подстановки.
Можно задать и последовательность:
{1..5} — то же самое, что {1,2,3,4,5}. Работает не только с числами, но и с буквами!
Тильда: быстрый доступ к домашней папке и не только
Самое базовое применение ~ — молниеносный переход в домашний каталог пользователя. Например:
Однако у тильды есть и менее известные приёмы — например:
Переменные и параметры: Bash умеет больше, чем просто $
Чтобы воспользоваться переменной, поставьте перед её именем знак $ или используйте позиционные номера (идеально для скриптов и функций).
Часто имя переменной записывают в фигурных скобках, например:
Это защищает от ошибок и открывает доступ к расширенным возможностям подстановки. Например, можно легко задать значение по умолчанию, если переменная пуста — с помощью :-:
Или вырезать определённую часть строки:
Можно быстро менять регистр символов или узнать длину строки:
В Bash огромный арсенал трюков для работы со строками — не поленитесь изучить их!
Подстановка команд: автоматизация без границ
Подстановка команд — настоящий лайфхак для и повседневных задач, и скриптов. Самый простой пример:
Bash выполнит команду в отдельном процессе, а на место $(…) вставит её результат. Это экономит массу времени — например, команда сразу возвращает имя файла. Хотите создать временный файл и тут же открыть его на редактирование одной строкой? Легко:
Или создать временную папку и сразу перейти в неё:
Есть и подстановка процесса — она похожа на подстановку команд, но работает по-другому и доступна не везде.
Арифметические операции: вычисляем прямо в Bash
Арифметика особенно удобна в скриптах, где всё считает Bash, прямо «на месте». Главное — используйте двойные скобки:
Bash прекрасно справляется с базовыми целочисленными операциями: умножением, инкрементами, побитовыми сдвигами и не только. Работают стандартные операторы сравнения: == для проверки на равенство, && для логического «И» и прочие привычные конструкции.
Разделение на слова: как Bash превращает строки в аргументы команд
После всех подстановок (если они были не в двойных кавычках) Bash разбивает результат на отдельные слова — для этого используются символы из переменной IFS (по умолчанию — пробел, табуляция и перевод строки).
Пример:
Bash сначала подставит команду как «ls one two three» — если нет кавычек, строка делится на три параметра для ls: one, two и three. А если кавычки есть, результат другой:
В этом случае ls ищет файл с именем «one two three» — именно поэтому важно понимать разницу между несколькими аргументами и одним аргументом с пробелами внутри.
Расширение имён файлов (глоббинг): ищем файлы по шаблонам
Файловое расширение — глоббинг — это поиск файлов по шаблону. Даже если слово “глоббинг” вам не знакомо, наверняка вы давно этим пользуетесь, например, когда вводите:
Если shell встречает неэкранированные *, ? или [, он воспринимает строку как шаблон и подставляет все подходящие имена файлов.
* заменяет любое количество символов, ? — ровно один, а [abc] — любой символ из набора abc.
Удаление кавычек: защитите свои аргументы с пробелами
В самом конце Bash убирает кавычки и обратные слэши, которые защищали части строки от распада во время всех подстановок.
Это позволяет легко передать строку с пробелами как единый аргумент. Например, если нужно вывести имя файла с неудобными пробелами:
Без кавычек ls попытается найти четыре отдельных файла с простыми именами.
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка — это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!
Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru






