Мастер Claude · Блок 1. Первые шаги

Урок 10 из 93 · ~10 мин чтения

Итог фазы 1: первый рабочий скрипт

Урок пока закрыт

Курс проходится последовательно.

К текущему уроку

Почему это важно именно вам

Девять уроков позади. Вы знаете, что такое 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 "запрос" < файл.

Связь с другими уроками

Задание на сегодня

Создайте и запустите скрипт анализ_документа.sh из этого урока.

  1. Создайте файл с тестовым текстом:
cat > тест_документ.txt << 'EOF'
Протокол встречи 03.06.2026.
Обсуждались условия договора с подрядчиком на разработку интерфейса.
Подрядчик просит увеличить бюджет на 20% в связи с расширением требований.
Дедлайн — 30 июня. Решение по бюджету нужно принять до 10 июня.
Следующая встреча — 07.06 в 11:00.
EOF
  1. Создайте скрипт, сделайте исполняемым, запустите:
# Создать скрипт (скопировать из урока)
chmod +x анализ_документа.sh
./анализ_документа.sh тест_документ.txt

Критерий выполнено: скрипт запустился, вернул структурированный анализ с типом документа, сутью и действиями.

Резюме


Итог первой фазы

За 10 дней вы освоили:

  1. Что такое Claude Code и зачем он директору
  2. Установку и первый запуск
  3. Интерактивный режим vs headless (-p)
  4. Выбор модели (--model) и усилий (--effort)
  5. Передачу файлов через пайп и stdin
  6. Форматы вывода (--output-format)
  7. Управление сессиями (--continue, --resume)
  8. Режимы разрешений (--permission-mode)
  9. Фоновые задачи (--bg)
  10. Первый рабочий скрипт

Следующая фаза — управление контекстом и памятью: CLAUDE.md, правила, auto memory. Именно там Claude Code перестаёт быть просто инструментом и становится системой, которая знает, как вы работаете.

Следующий урок откроется после отметки.