Покрокова інструкція зі створення скрипту оболонки в Linux
09:32, 05.06.2026
Створення скриптів оболонки — це чудовий спосіб автоматизувати завдання та ефективно виконувати команди в Linux. Цей посібник допоможе вам розпочати роботу з основ, навіть якщо ви тільки починаєте.
Написання скрипту оболонки
Щоб створити скрипт оболонки, відкрийте будь-який текстовий редактор, наприклад nano, vim або gedit.
Введіть свої команди та збережіть файл із розширенням .she.
Приклад:
#!/bin/bash
echo "Hello, World!"
Щоб зробити скрипт виконуваним, скористайтеся цією командою:
chmod +x myscript.sh
Потім запустіть його:
./myscript.sh
Додавання коментарів у скрипті оболонки
Коментарі допомагають пояснити ваш код. У скриптах оболонки коментарі починаються з #.
Приклад:
# Це коментар
echo "Запуск скрипта..."
Використовуйте коментарі, щоб зробити ваш код легшим для розуміння як для вас, так і для інших.
Робота зі змінними в скриптах оболонки
Змінні зберігають значення, які ви можете використовувати повторно.
Приклад:
name="Alice"
echo "Hello, $name"
Немає потреби оголошувати тип. Ви можете безпосередньо присвоювати значення змінній та використовувати її.
Вказівка інтерпретатора скрипту оболонки
Перший рядок у скрипті оболонки називається shebang. Він вказує системі, який інтерпретатор використовувати.
Приклад:
#!/bin/bash
Завжди включайте цей рядок на початку вашого скрипта, щоб він працював належним чином.
Використання операторів порівняння
Оператори порівняння дозволяють порівнювати значення, що корисно для прийняття рішень у скриптах.
Порівняння цілочисельних значень
Для числових порівнянь використовуйте такі оператори:
Порівняння цілих чисел
Оператор | Опис |
-eq | дорівнює |
-ne | не дорівнює |
-gt | більше за |
-ge | більше або дорівнює |
-lt | менше за |
-le | менше або дорівнює |
Приклад:
a=10
b=5
if [ $a -gt $b ]; then
echo "$a більше за $b"
fi
Порівняння рядків у скриптах оболонки
Для порівняння текстових значень (рядків) використовуйте такі оператори:
Порівняння рядків
Оператор | Опис |
== | дорівнює |
!= | не дорівнює |
\< | менше, у алфавітному порядку ASCII |
\> | більше, у алфавітному порядку ASCII |
Приклад:
str1="apple"
str2="banana"
if [ "$str1" \< "$str2" ]; then
echo "$str1 йде перед $str2 за алфавітом"
fi
Реалізація умовних операторів
Умовні оператори дозволяють скрипту вибирати, що робити, на основі умови.
Використання оператора if
Оператор if перевіряє умову та виконує команди, якщо вона справджується.
Приклад:
if [ -e myfile.txt ]; then
echo "Файл існує"
fi
Реалізація логіки If-Else
Ви можете використовувати else для обробки випадків, коли умова є хибною.
Приклад:
if [ -d myfolder ]; then
echo "Папка існує"
else
echo "Папка не існує"
fi
Ви також можете використовувати elif для додаткових умов:
if [ $a -gt $b ]; then
echo "A більше"
elif [ $a -eq $b ]; then
echo "A дорівнює"
else
echo "A менше"
fi
Розуміння циклів у скриптах оболонки
Цикли дозволяють повторювати команди кілька разів. Існує два поширених цикли: while та for.
Цикл While
Цикл while виконується, поки умова є істинною.
Приклад:
count=1
while [ $count -le 5 ]; do
echo "Count is $count"
((count++))
done
Цикл For
Цикл for проходить по списку або діапазону.
Приклад:
for i in 1 2 3 4 5; do
echo "Число: $i"
done
Ви також можете обходити файли:
for file in *.txt; do
echo "Знайдено файл: $file"
done
Обробка позиційних аргументів у скриптах
Скрипти оболонки можуть приймати аргументи з командного рядка.
Приклад:
#!/bin/bash
echo "Назва скрипта: $0"
echo "Перший аргумент: $1"
echo "Другий аргумент: $2"
Запустіть скрипт:
./myscript.sh hello world
Вихідні дані:
Назва скрипту: ./myscript.sh
Перший аргумент: hello
Другий аргумент: world
Захоплення та збереження результатів команд
Ви можете зберегти результат команди, використовуючи $(command).
Приклад:
current_date=$(date)
echo "Сьогодні $current_date"
Це зберігає вихідні дані date у змінній.
Розуміння кодів завершення в командах оболонки
Кожна команда повертає код завершення. Ви можете перевірити його за допомогою $?.
- 0 означає успіх.
- Будь-яке інше значення означає, що сталася помилка.
Приклад:
ls /notfound
if [ $? -ne 0 ]; then
echo "Каталог не знайдено"
fi
Це допомагає виявляти помилки у скриптах.