Гид по технологиям

Шаблоны текстовых файлов в Bash: быстрое руководство

4 min read Dev Tools Обновлено 23 Nov 2025
Bash: шаблоны TXT — быстрый старт
Bash: шаблоны TXT — быстрый старт

Изображение: обложка — шаблоны Bash для создания TXT файлов

Введение

Если вы каждый день формируете похожие тексты в терминале, можно упростить процесс: сделать шаблон в виде bash‑скрипта и быстро генерировать .txt файлы. Ниже — простой рабочий пример и советы по расширению.

Создайте новый шаблонный скрипт

Откройте терминал и создайте файл любым редактором. В примере используется nano для создания скрипта MTE_template.sh в папке Scripts в домашнем каталоге:

nano MTE_template.sh

Изображение: создание файла шаблона в nano в терминале

Определите параметры

Откройте файл и укажите в первой строке интерпретатор:

#!/bin/sh

Для читабельности добавьте комментарий‑заголовок, а затем присвойте позиционные параметры именам переменных:

# Наши параметры
SITE=$1
AUTHOR=$2
CONTACT=$3

Изображение: определение переменных в скрипте

Можно определить любые другие параметры по той же схеме: $4, $5 и т. д. Также полезно добавлять значения по умолчанию, например SITE=${1:-default_site}.

Создайте текстовый шаблон внутри скрипта

Для вставки многострочного шаблона удобно использовать heredoc с cat. Схема простая: cat << EOF … EOF. Всё между будет выведено как единый блок и подставит значения переменных.

# Template
cat<< EOF
Welcome to a Bash-generated TXT template for $SITE.
Created by $AUTHOR.
Contact me at $CONTACT.
EOF

Изображение: вставка текста шаблона с помощью heredoc

Пример более полезного шаблона — письмо. Определите параметры NAME и TASK и подготовьте шаблон письма:

cat<< EOF
Hello $NAME,
I just wanted to get back to you regarding $TASK.
Would you be so kind as to update me on any changes?

Best regards,
My Name
EOF

После правок сохраните файл (Ctrl+O) и выйдите (Ctrl+X). Сделайте скрипт исполняемым:

chmod u+x MTE_template.sh

Изображение: установка флага исполнения для скрипта

Теперь запуск по имени скрипта будет выводить ваш шаблон с подставленными параметрами.

Тестовый запуск

Запустите скрипт с аргументами. Пример теста из статьи:

./MTE_template.sh Make_Tech_Easier Ody mymail@mailserver.com

Изображение: вывод работы скрипта в терминале

Первый аргумент — SITE, второй — AUTHOR, третий — CONTACT. Если нужно, используйте кавычки, чтобы передавать значения с пробелами:

./MTE_template.sh "Make Tech Easier" "Ody Name" "mymail@mailserver.com"

Изображение: результат выполнения шаблона и вывод в терминал

Создание файла на диске

Чтобы отправить вывод скрипта в файл, используйте перенаправление > или >>:

./MTE_template.sh Make_Tech_Easier Ody mymail@mailserver.com >/home/ducklord/Documents/new_MTE_note.txt

Это поместит результат в указанный файл вместо вывода в терминал.

Изображение: результат записи шаблона в файл

Расширенные приёмы и сниппеты

Выше — базовый поток. Ниже — набор полезных расширений и приёмов, которые делают шаблоны гибче и безопаснее.

  • Значения по умолчанию и проверка аргументов:
SITE=${1:-Unknown_Site}
AUTHOR=${2:-Unknown_Author}
CONTACT=${3:-no-reply@example.com}

if [ -z "$1" ]; then
  echo "Usage: $0 SITE AUTHOR CONTACT"
  exit 1
fi
  • Использование именованных опций через getopts для более удобного интерфейса:
while getopts ":s:a:c:" opt; do
  case $opt in
    s) SITE=$OPTARG ;;
    a) AUTHOR=$OPTARG ;;
    c) CONTACT=$OPTARG ;;
    \?) echo "Invalid option -$OPTARG" ; exit 1 ;;
  esac
done
  • Сохранение шаблона в файл и добавление времени/меток:
OUTPUT="/path/to/output_$(date +%Y%m%d_%H%M).txt"
./MTE_template.sh "$SITE" "$AUTHOR" "$CONTACT" > "$OUTPUT"
  • Аппенд вместо перезаписи:
./MTE_template.sh ... >> /path/to/notes.txt

Чеклист по ролям

  • Для разработчика:

    • Добавить проверку входных параметров.
    • Поддержать getopts для читаемости.
    • Сделать unit‑тесты для генерации шаблонов.
  • Для контент‑менеджера:

    • Подготовить финальный текст шаблона.
    • Убедиться, что переменные соответствуют реальным полям.
    • Протестировать кавычки и спецсимволы.
  • Для администратора:

    • Ограничить доступ к скрипту по правам файловой системы.
    • Настроить cron для периодической генерации.

Когда такой подход не подходит

  • Когда шаблон требует сложной логики форматирования или генерации HTML с множеством зависимостей — лучше использовать шаблонизатор на Python, Ruby или node.js.
  • Когда шаблон должен быть редактируем через веб‑интерфейс — нужен веб‑сервер и бекенд.
  • Если в тексте много локализации и переводов — используйте gettext/PO‑файлы или специализированный движок.

Альтернативные подходы

  • Использовать jinja2 (Python) для мощной логики и фильтров.
  • Использовать mustache/handlebars для простых шаблонов с JSON‑подстановкой.
  • Хранить шаблоны в отдельных файлах и подставлять через envsubst для простоты.

Типичные ошибки и как их избежать

  • Забыл сделать скрипт исполняемым: chmod u+x.
  • Не экранировал аргументы с пробелами: использовать кавычки.
  • Перезапись важных файлов: при тестировании используйте >> или временную папку.
  • Уязвимости при подстановке необработанных данных: очищайте ввод при необходимости.

Примеры использования в реальных задачах

  • Автоматическая генерация стандартных электронных писем.
  • Создание бланков документации или описаний товаров.
  • Быстрая сборка index.html с базовой структурой сайта.
  • Генерация конфигурационных файлов с переменными окружения.

Критерии приёмки

  • Скрипт исполняется и выводит корректный текст при заданных параметрах.
  • При отсутствии обязательных параметров выводится поясняющее сообщение и код выхода 1.
  • Вывод может быть перенаправлен в файл без искажений.
  • Скрипт отрабатывает с аргументами, содержащими пробелы, если они заключены в кавычки.

Шпаргалка переменных и конструкций (чек‑шит)

  • ${VAR:-default} — значение по умолчанию.
  • “$@” — все аргументы как отдельные поля.
  • “$*” — все аргументы как одна строка.
  • heredoc: cat<< EOF … EOF — многострочный литерал.
  • getopts — парсинг опций.

1‑строчная глоссарий

  • heredoc — способ передать многострочный текст в команду.
  • getopts — встроенный парсер коротких опций в sh/bash.
  • redirect > и >> — перезаписать/дописать в файл.

Резюме

Шаблон в виде bash‑скрипта — простой и надёжный инструмент для генерации повторяющихся текстов прямо из терминала. Он подходит для писем, заметок, простых конфигов и может быть улучшен с помощью getopts, значений по умолчанию и проверки входных данных.

Важно: если требуется сложная логика, рассмотрите специализированные шаблонизаторы.

Краткий план действий: создать скрипт, описать параметры, вставить heredoc с шаблоном, дать права на исполнение и при необходимости перенаправить вывод в файл.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Устранение ошибки Epson 1131: полное руководство
Поддержка принтеров

Устранение ошибки Epson 1131: полное руководство

Отключить Bluetooth в Arch Linux быстро и безопасно
Linux

Отключить Bluetooth в Arch Linux быстро и безопасно

Windows netstat: прослушиваемые порты
Сеть

Windows netstat: прослушиваемые порты

Ограничения ресурсов в Kubernetes: CPU, память и хранилище
Kubernetes

Ограничения ресурсов в Kubernetes: CPU, память и хранилище

Вредоносное ПО в облаке: что это и как защититься
Кибербезопасность

Вредоносное ПО в облаке: что это и как защититься

Установка и настройка tmux в Linux
Linux

Установка и настройка tmux в Linux