Почему это важно именно вам
Девять уроков позади. Вы знаете, что такое Claude Code, умеете запускать запросы, выбирать модели, передавать файлы через пайп, работать с сессиями и управлять разрешениями. Всё это — отдельные инструменты.
Настоящая ценность появляется, когда инструменты собираются вместе. Скрипт — это не «программирование для разработчиков». Это конкретная последовательность команд, которая выполняет реальную задачу. Один раз написали — дальше запускаете в одну команду.
Этот урок — не теория. Мы напишем три скрипта: один простой, один средний, один для ежедневного использования. К концу урока у вас будет что-то реально работающее.
Что это такое
Bash-скрипт — это текстовый файл с командами. Каждая строка — одна команда. Файл запускается как программа. Это ровно то, что вы уже умеете вводить в терминале — просто записанное в файл.
Аналогия: чек-лист для помощника. Вместо того чтобы каждый раз говорить «сначала сделай это, потом то, потом вот это» — написали один раз и передали. Помощник выполняет по списку.
Shell-скрипты работают везде
Скрипты, которые мы напишем, работают на macOS и Linux. На Windows — в PowerShell или WSL (Windows Subsystem for Linux). Синтаксис немного различается, но логика одинакова.
Как работает на практике
Скрипт 1: Быстрый анализ документа
Создадим скрипт, который принимает любой файл и возвращает структурированное резюме.
Создайте файл анализ_документа.sh:
#!/bin/bash
# Использование: ./анализ_документа.sh файл.txt
set -e # остановить при ошибке
FILE=${1} # первый аргумент — имя файла
if [ -z "$FILE" ]; then
echo "Использование: $0 <файл>"
exit 1
fi
if [ ! -f "$FILE" ]; then
echo "Файл не найден: $FILE"
exit 1
fi
echo "Анализирую: $FILE"
echo "================================"
claude --model sonnet \
--effort medium \
-p "проанализируй документ и дай:
1. Тип документа (договор/отчёт/письмо/другое)
2. Ключевая суть в одном предложении
3. Три главных пункта
4. Действия, которые требуются (если есть)
Формат — маркированные списки, кратко." \
< "$FILE"
Сделайте файл исполняемым:
chmod +x анализ_документа.sh
Запуск:
./анализ_документа.sh договор.txt
./анализ_документа.sh отчёт_июнь.txt
Один скрипт — любой документ.
Скрипт 2: Еженедельная сводка отчётов
Более практичный сценарий. Менеджеры присылают текстовые отчёты в папку. В конце недели нужна сводка.
Файл недельная_сводка.sh:
#!/bin/bash
# Использование: ./недельная_сводка.sh папка_с_отчётами/
set -e
ПАПКА=${1:-"отчёты"}
ДАТА=$(date +%Y-%m-%d)
ВЫХОДНОЙ="сводка_${ДАТА}.txt"
if [ ! -d "$ПАПКА" ]; then
echo "Папка не найдена: $ПАПКА"
exit 1
fi
# Считаем файлы
КОЛИЧЕСТВО=$(ls "$ПАПКА"/*.txt 2>/dev/null | wc -l | tr -d ' ')
if [ "$КОЛИЧЕСТВО" -eq 0 ]; then
echo "В папке $ПАПКА нет .txt файлов"
exit 1
fi
echo "Найдено отчётов: $КОЛИЧЕСТВО"
echo "Обрабатываю..."
# Собираем все отчёты в один поток и передаём Claude
{
echo "Дата: $ДАТА"
echo "Количество отчётов: $КОЛИЧЕСТВО"
echo ""
echo "=== ОТЧЁТЫ ==="
for f in "$ПАПКА"/*.txt; do
echo "--- $(basename $f) ---"
cat "$f"
echo ""
done
} | claude --model sonnet \
--effort high \
-p "это отчёты команды за неделю. Составь:
1. ИТОГИ НЕДЕЛИ: что выполнено (bullet-список)
2. ПРОБЛЕМЫ: что не выполнено или идёт с задержкой
3. ТРЕНДЫ: повторяющиеся темы или паттерны
4. СЛЕДУЮЩИЕ ШАГИ: что требует внимания руководства
Формат — чёткий, структурированный, без воды." \
> "$ВЫХОДНОЙ"
echo "Сводка сохранена: $ВЫХОДНОЙ"
Запуск:
./недельная_сводка.sh отчёты/
Через минуту — готовая сводка.
Скрипт 3: Ежедневный дайджест входящих
Самый практичный сценарий для директора. Берём папку с входящими текстами (экспорт из почты, переписки, заметок) и получаем структурированный дайджест.
Файл дайджест.sh:
#!/bin/bash
# Дайджест входящих. Запуск: ./дайджест.sh
set -e
ДАТА=$(date +%Y-%m-%d)
ПАПКА="входящие"
ВЫХОДНОЙ="дайджест_${ДАТА}.txt"
echo "Дайджест за $ДАТА"
echo "================================" | tee "$ВЫХОДНОЙ"
# Проверяем, есть ли входящие
if [ ! -d "$ПАПКА" ] || [ -z "$(ls -A "$ПАПКА"/*.txt 2>/dev/null)" ]; then
echo "Нет входящих в папке $ПАПКА" | tee -a "$ВЫХОДНОЙ"
exit 0
fi
# Обрабатываем каждый файл отдельно, экономим на контексте
for f in "$ПАПКА"/*.txt; do
ИМЯФАЙЛА=$(basename "$f" .txt)
echo "" >> "$ВЫХОДНОЙ"
echo "=== $ИМЯФАЙЛА ===" >> "$ВЫХОДНОЙ"
claude --model haiku \
--effort low \
-p "дай одно предложение: что это и нужно ли действие от руководителя. Формат: [ТИП] Краткая суть. [ДЕЙСТВИЕ: да/нет]" \
< "$f" >> "$ВЫХОДНОЙ"
done
echo "" >> "$ВЫХОДНОЙ"
echo "================================" >> "$ВЫХОДНОЙ"
# Финальная сводка по всем входящим
cat "$ВЫХОДНОЙ" | claude --model sonnet \
-p "это дайджест входящих. Выдели только те, где ДЕЙСТВИЕ: да, и отсортируй по срочности. Максимум 5 пунктов." \
>> "$ВЫХОДНОЙ"
echo "Дайджест готов: $ВЫХОДНОЙ"
Двухуровневая обработка
В скрипте выше используется умная экономия: первый проход — Haiku с low effort (дёшево, быстро) для каждого файла отдельно. Второй проход — Sonnet только для финальной сводки. Это и дешевле, и быстрее, чем гнать всё через Sonnet.
Итоговая структура для рабочих скриптов
После написания трёх скриптов — вот чек-лист того, что должно быть в любом хорошем скрипте:
├── Shebang: #!/bin/bash
├── set -e (остановить при ошибке)
├── Проверка аргументов (есть ли файл/папка)
├── Выбор модели под задачу
├── Выбор --effort под задачу
├── --permission-mode если нужна автоматизация
├── Запись результата в файл с датой
└── echo о завершении
Как добавить скрипты в PATH
Чтобы запускать скрипты из любой папки без ./:
mkdir -p ~/bin
cp анализ_документа.sh ~/bin/анализ
cp недельная_сводка.sh ~/bin/сводка
cp дайджест.sh ~/bin/дайджест
chmod +x ~/bin/*
# Добавить ~/bin в PATH (если ещё нет)
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
Теперь из любой папки:
анализ договор.txt
сводка отчёты/
дайджест
Частые ошибки
Ошибка 1. Не делать chmod +x
Скрипт создали, но не сделали исполняемым. Ошибка Permission denied. Всегда после создания: chmod +x имя_скрипта.sh.
Ошибка 2. Не проверять входные данные
Скрипт без проверки аргументов падает с непонятными ошибками. Всегда проверяйте: существует ли файл, не пустая ли папка, переданы ли нужные аргументы.
Ошибка 3. Кириллица в именах скриптов
На некоторых системах скрипты с именами на кириллице работают нестабильно. Используйте латиницу для имён скриптов и файлов в PATH.
Ошибка 4. Не добавлять дату в имя выходного файла
сводка.txt будет перезаписан при следующем запуске. сводка_2026-06-03.txt — нет. Всегда добавляйте $(date +%Y-%m-%d) в имя выходного файла.
Когда нужно / когда нет
Скрипты нужны когда задача повторяется. Если вы делаете что-то второй раз — стоит задуматься о скрипте. Если третий раз — скрипт точно нужен.
Скрипт не нужен для разовых задач. Для «посмотреть один раз» достаточно claude -p "запрос" < файл.
Связь с другими уроками
- Фаза 2 (дни 11–20) — управление контекстом: следующий шаг после скриптов — встроить в них постоянный контекст через CLAUDE.md
- День 39 — автоматизация через cron: скрипты из этого урока + расписание = полная автономия
- День 34 — библиотека skills для директора: более мощный способ упаковать повторяющиеся задачи
Задание на сегодня
Создайте и запустите скрипт анализ_документа.sh из этого урока.
- Создайте файл с тестовым текстом:
cat > тест_документ.txt << 'EOF'
Протокол встречи 03.06.2026.
Обсуждались условия договора с подрядчиком на разработку интерфейса.
Подрядчик просит увеличить бюджет на 20% в связи с расширением требований.
Дедлайн — 30 июня. Решение по бюджету нужно принять до 10 июня.
Следующая встреча — 07.06 в 11:00.
EOF
- Создайте скрипт, сделайте исполняемым, запустите:
# Создать скрипт (скопировать из урока)
chmod +x анализ_документа.sh
./анализ_документа.sh тест_документ.txt
Критерий выполнено: скрипт запустился, вернул структурированный анализ с типом документа, сутью и действиями.
Резюме
- Скрипт — это список команд в файле, запускается одной командой
- Структура хорошего скрипта: проверка входных данных → выбор модели → обработка → запись результата
- Двухуровневая обработка: Haiku для черновика, Sonnet для финального анализа
chmod +xделает скрипт исполняемым~/bin/+ PATH — скрипты доступны из любой папки- Три скрипта из этого урока покрывают 80% типичных задач директора с документами
Итог первой фазы
За 10 дней вы освоили:
- Что такое Claude Code и зачем он директору
- Установку и первый запуск
- Интерактивный режим vs headless (
-p) - Выбор модели (
--model) и усилий (--effort) - Передачу файлов через пайп и stdin
- Форматы вывода (
--output-format) - Управление сессиями (
--continue,--resume) - Режимы разрешений (
--permission-mode) - Фоновые задачи (
--bg) - Первый рабочий скрипт
Следующая фаза — управление контекстом и памятью: CLAUDE.md, правила, auto memory. Именно там Claude Code перестаёт быть просто инструментом и становится системой, которая знает, как вы работаете.