1. Что такое bash-скрипты?
Если вы когда-либо думали: "Почему мне нужно повторять одни и те же команды снова и снова?", то поздравляю, вы готовы к bash-скриптам! Bash-скрипты — это способ автоматизировать работу в Linux с помощью написания последовательности команд в одном файле. Bash (Bourne Again Shell) — это не просто оболочка, это швейцарский нож для админов, программистов и всех, кто хочет заставить систему работать на себя.
Преимущества bash-скриптов
- Экономия времени: Один раз написал — восемь раз запустил.
- Повторяемость задач: Сценарии выполняются одинаково при каждом запуске (ну, если вы всё написали правильно).
- Автоматизация рутины: Создайте настроенные команды для резервного копирования, мониторинга ресурсов или управления файлами.
2. Основы создания скриптов
Итак, давайте начнем. Bash-скрипт — это просто текстовый файл с набором команд. Но чтобы Linux понял, что это скрипт, а не случайные записи из дневника, нужно следовать определённым правилам.
Шаг 1: Название и формат файла
Bash-скрипты обычно имеют расширение .sh (но это необязательно). Например:
hello_world.sh
backup_script.sh
Шаг 2: Обязательная шапка
Каждый bash-скрипт начинается со строки:
#!/bin/bash
Эта строка называется шебанг (shebang) и говорит системе, что для выполнения скрипта нужно использовать интерпретатор /bin/bash. Без неё система просто посмотрит на ваш скрипт, грустно вздохнёт и ничего не сделает.
Шаг 3: Простейший скрипт
Давайте создадим и запустим скрипт, который выводит текст "Привет, мир!". В конце концов, почему бы и нет?
Создаём файл:
nano hello_world.shДобавляем строки:
#!/bin/bash echo "Привет, мир!"Делаем файл исполняемым:
chmod +x hello_world.shЗапускаем скрипт:
./hello_world.sh
На экране вы увидите:
Привет, мир!
3. Работа с переменными
Переменные — это хранилище данных в вашем скрипте. Они делают скрипты гибкими и удобными.
Создание переменных
Чтобы объявить переменную, используйте формат:
ИМЯ_ПЕРЕМЕННОЙ="значение"
Пример:
NAME="Linux"
echo "Добро пожаловать в $NAME!"
Вывод:
Добро пожаловать в Linux!
Обратите внимание: между именем переменной и знаком = нельзя ставить пробелов. Если поставите, bash подумает, что вы пытаетесь написать что-то странное, и выдаст ошибку.
Встроенные переменные
Bash предоставляет несколько предопределённых переменных, например:
$USER— текущий пользователь.$HOME— домашняя директория.$PWD— текущая рабочая директория.
Попробуйте такой скрипт:
#!/bin/bash
echo "Привет, $USER!"
echo "Твоя домашняя директория: $HOME"
echo "Ты сейчас работаешь здесь: $PWD"
4. Получение данных от пользователя
Иногда скрипт должен получить данные от пользователя, чтобы работать. Для этого используется команда read.
Пример:
#!/bin/bash
echo "Как тебя зовут?"
read NAME
echo "Привет, $NAME!"
Запустив скрипт, вы сможете ввести своё имя, и скрипт поприветствует вас персонально.
5. Использование команд внутри скрипта
Bash позволяет выполнять команды так же, как если бы вы набирали их в терминале.
Например:
#!/bin/bash
echo "Текущая дата и время:"
date
Команда date выведет текущее время и дату, например:
Текущая дата и время:
Mon Oct 30 12:34:56 UTC 2023
Сохранение результата команды в переменной
Вы можете сохранить вывод команды в переменную с помощью $(). Это удобно для дальнейшей обработки данных.
Пример:
#!/bin/bash
CURRENT_DATE=$(date)
echo "Сейчас: $CURRENT_DATE"
6. Комментарии в скриптах
Всегда добавляйте комментарии, чтобы через месяц понять, что вы вообще писали. Используйте символ # для комментариев:
#!/bin/bash
# Это приветственный скрипт
echo "Добро пожаловать в мир Bash!"
Комментарии игнорируются интерпретатором и не влияют на выполнение.
7. Пример
Теперь напишем скрипт, который проверяет, существует ли файл.
Создаём файл:
nano file_checker.shДобавляем код:
#!/bin/bash # Запрос имени файла echo "Введите имя файла:" read FILE_NAME # Проверяем, существует ли файл if [ -f "$FILE_NAME" ]; then echo "Файл $FILE_NAME существует." else echo "Файл $FILE_NAME не найден." fiДелаем файл исполняемым и запускаем:
chmod +x file_checker.sh ./file_checker.shПример работы скрипта:
Введите имя файла: test.txt Файл test.txt существует.
8. Типичные ошибки
Работа с bash-скриптами приносит не только радость, но и иногда серьёзные ломания головы. Вот несколько распространённых ошибок:
Пропущен шебанг.
Без строки#!/bin/bashваш скрипт может попытаться выполняться в другом интерпретаторе, что приведёт к ошибкам.Необъявленные переменные.
Если вы случайно опечатались в имени переменной, bash воспримет её как пустую. Включите режим строгой проверки с помощьюset -uв начале скрипта.Пробелы вокруг
=.
Никогда не пишите так:VARIABLE = "value". Это вызовет ошибку.Проблемы с правами.
Если скрипт не имеет права на выполнение, добавьте его черезchmod +x.
Практическое задание
Напишите скрипт, который:
- Запрашивает имя пользователя.
- Выводит приветственную фразу.
- Показывает текущую дату и время.
Напишите скрипт, который:
- Запрашивает у пользователя имя файла.
- Создаёт файл, если он не существует, или сообщает, что файл уже есть.
Теперь вы знаете основы bash-скриптов! Осталось научиться добавлять условия и циклы, но это уже тема следующей лекции. Вперёд, к автоматизации мира!
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ