Введение / Зачем это нужно
Shell-скриптинг — это мощный инструмент для автоматизации повторяющихся задач в Linux. Используя Bash, вы можете объединять команды в исполняемые файлы, которые работают быстро и повторяемо. В этом гайде вы освоите базовые конструкции: создание исполняемого скрипта, работу с переменными, условную логику, циклы и функции. После прочтения вы сможете писать простые скрипты, которые сэкономят время и упростят повседневную работу с системой.
Требования / Подготовка
- Любая современная дистрибутива Linux (Ubuntu 22.04, Debian 12, Fedora 38, openSUSE Leap 15 и др.).
- Доступ к терминалу с правами обычного пользователя (для выполнения скриптов не требуются права root, но для некоторых системных задач они могут понадобиться).
- Базовые знания командной строки Linux (знание путей, символов подчеркивания и пробелов в именах файлов).
Пошледовая инструкция
Шаг 1: Создание исполняемого файла
Создайте файл script.sh и добавьте shebang в начале, чтобы Bash интерпретировал его:
cat > script.sh << 'EOF'
#!/bin/bash
echo 'Привет, мир!'
EOF
Сделайте файл исполняемым:
chmod +x script.sh
Шаг 2: Запуск скрипта
Запустите скрипт напрямую, используя ./:
./script.sh
В результате вы увидите:
Привет, мир!
Шаг 3: Использование переменных
Переменные позволяют хранить и повторно использовать данные:
name='Alice'
echo "Привет, $name!"
Для многословных значений используйте кавычки:
msg="Добро пожаловать в Linux"
echo "$msg"
Шаг 4: Основы условной логики
Условия позволяют ветвить выполнение скрипта:
value='production'
if [ "$value" = "production" ]; then
echo "Режим: продакшн"
else
echo "Режим: разработка"
fi
Шаг 5: Создание цикла
Циклы повторяют действия несколько раз:
for i in 1 2 3 4 5; do
echo "Итерация $i"
done
Шаг 6: Добавление функций
Функции упрощают реиспользование кода:
greet() {
local name=$1
echo "Привет, $name!"
}
greet "Bob"
Проверка результата
Убедитесь, что скрипт работает как ожидается:
- Проверьте синтаксис:
bash -n script.sh - Запустите скрипт и сравните вывод с ожидаемым результатом.
- Если нужны дополнительные отладочные данные, добавьте
set -xв начало скрипта.
Возможные проблемы
- Команда не найдена (
command not found) – убедитесь, что команды установлены (sudo apt-get install <package>). - Доступ запрещён – скрипт может требовать прав root для записи в системные каталоги; используйте
sudo. - Неправильные кавычки – смешение кавычек приводит к необычному поведению; используйте одинарные кавычки для статичных строк и двойные для переменных.
Теперь у вас есть базовый набор навыков для написания полезных и автоматизированных shell-скриптов в Linux. Удачного кодирования!