Назад до блогу
Arnošt Havelka

Преміум: Практикум зі сценаріїв Bash

Поєднайте змінні, функції, цикли та умовні оператори, щоб вирішити реалістичний багатоетапний сценарій.

Почати інтерактивний урок
Преміум: Практикум зі сценаріїв Bash

Тепер давайте об'єднаємо все: змінні, функції, цикли та умовні оператори, щоб створити реальний сценарій автоматизації.

Крок 1: Створення основи

Command Prompt
(empty)
C:\Users\User>ls

Створіть кілька файлів журналів за допомогою циклу. Кожна ітерація створює новий файл.

Крок 2: Аналіз результатів

Command Prompt
log_1.txt log_2.txt log_3.txt
C:\Users\User>ls backups

Використовуйте шаблони глобу, щоб обробити всі файли одночасно.

Крок 3: Вилучення та підрахунок

Command Prompt
Log entry 1 Log entry 2 Log entry 3
C:\Users\User>cat backups/*.txt

Поєднайте канали та команди, щоб отримати значущу статистику з ваших даних.

Реальний сценарій

Ви керуєте 10 мікросервісами. Кожен з них генерує журнал розгортання. Створіть сценарій, який:

  1. Створює каталог резервних копій із усіма поточними журналами.
  2. Фільтрує рядки з помилками.
  3. Підраховує загальну кількість помилок у всіх сервісах.
function check_deploys {
  mkdir -p backup_deploys
  for service in web api cache queue worker db; do
    if [ -f "$service.log" ]; then
      cp "$service.log" backup_deploys/
      error_count=$(grep -c 'ERROR' "backup_deploys/$service.log")
      echo "Service $service has $error_count errors"
    fi
  done
}

check_deploys

Список перевірок, який можна повторно використовувати

  1. Ітеруйте за допомогою for var in list; do ...; done.
  2. Перевіряйте умови за допомогою if [ test ]; then ...; fi.
  3. Захоплюйте вивід за допомогою $(command).
  4. Обробляйте файли за допомогою cat *.ext | grep | wc -l.
  5. Організовуйте за допомогою функцій, які об'єднують пов'язані завдання.

Перевірка знань

1 / 2

Як запустити команду та зберегти її результат у змінній?

Посилання

Ці посилання на документацію надають авторитетну інформацію про команди, використані в цій статті.