Написання скриптів на bash

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

Якщо ви вже більш досвідчений користувач, то, напевно, часто виконуєте різні завдання через термінал. Часто зустрічаються завдання, для яких потрібно виконувати кілька команд по черзі, наприклад, для оновлення системи необхідно спочатку виконати оновлення репозиторіїв, а вже потім завантажити нові версії пакетів. Це тільки приклад і таких дій дуже багато, навіть взяти резервне копіювання і завантаження скопійованих файлів на віддалений сервер. Тому, щоб не набирати одні й ті ж команди кілька разів можна використовувати скрипти. У цій статті ми розглянемо написання скриптів на Bash, розглянемо основні оператори, а також те як вони працюють, так би мовити, bash скрипти з нуля.

основи скриптів

Скрипт або як його ще називають - сценарій, це послідовність команд, які по черзі зчитує і виконує програма-інтерпретатор, в нашому випадку це програма командного рядка - bash.

Скрипт - це звичайний текстовий файл, в якому перераховані звичайні команди, які ми звикли вводити вручну, а також вказана програма, яка буде їх виконувати. Завантажувач, який буде виконувати скрипт не вміє працювати зі змінними оточення, тому йому потрібно передати точний шлях до програми, яку потрібно запустити. А далі він вже передасть ваш скрипт цій програмі і почнеться виконання.

Найпростіший приклад скрипта для командної оболонки Bash:


echo "Hello world"

bash1

Утиліта echo виводить рядок, передану їй в параметрі на екран. Перший рядок особлива, вона задає програму, яка буде виконувати команди. Взагалі кажучи, ми можемо створити скрипт на будь-якому іншому мовою програмування і вказати потрібний інтерпретатор, наприклад, на python:

#! / Usr / bin / env python
print ( "Hello world")

Або на PHP:


echo "Hello world" -

У першому випадку ми прямо вказали на програму, яка буде виконувати команди, в двох наступних ми не знаємо точну адресу програми, тому просимо утиліту env знайти її на ім`я і запустити. Такий підхід використовується в багатьох скриптах. Але це ще не все. В системі Linux, щоб система могла виконати скрипт, потрібно встановити на файл з ним прапор виконуваний.




Цей прапор нічого не змінює в самому файлі, тільки говорить системі, що це не просто текстовий файл, а програма та її потрібно виконувати, відкрити файл, дізнатися інтерпретатор і виконати. Якщо інтерпретатор не вказано, буде за замовчуванням використовуватися інтерпретатор користувача. Але оскільки не всі використовують bash, потрібно вказувати це явно.

щоб зробити файл виконуваним в linux виконайте:

Відео: LPIC-1 Курс Linux для системного адміністратора: Написання скриптів Bash, sh

$ Chmod ugo + x файл_скріпта

Тепер виконуємо нашу невелику першу програму:

string = "Hello world"

Значення нашої рядки в лапках. Але насправді лапки не завжди потрібні. Тут зберігається головний принцип bash - пробіл - це спеціальний символ, розділовий знак, який тому якщо не використовувати лапки world вже буде вважатися окремою командою, з тієї ж причини ми не ставимо прогалин перед і після знака одно.




Щоб вивести значення змінної використовується символ $. наприклад:

#! / Bin / bash
string1 = "hello"
string2 = world
string = $ string1 $ string2
echo $ string

І перевіряємо:

#! / Bin / bash
string1 = "hello"
string2 = world
string = $ string1 $ string2 and me
string3 = $ string1 $ string2 "and me"
echo $ string3

bash2

перевіряємо:

#! / Bin / bash

for index in 1 2 3 4 5
do
echo $ index
done

bash10

bash11

Або ви можете перерахувати всі файли з поточної директорії:

#! / Bin / bash
index = 1
while [[$ index lt; 5]]
do
echo $ index
let "index = index + 1"
done

bash14

Відео: Bash скрипти 17. Позиційні параметри. Positional Parameters

bash13

Як бачите, все виконується, команда let просто виконує зазначену математичну операцію, в нашому випадку збільшує значення змінної на одиницю.

Відео: Bash скрипти 22. Оператори розгалуження - if-then

Хотілося б відзначити ще дещо. Такі конструкції, як while, for, if розраховані на запис в кілька рядків, і якщо ви спробуєте їх записати в один рядок, то отримаєте помилку. Але тим не менше це можливо, для цього там, де повинен бути новий рядок ставте крапку з комою ";". Наприклад, попередній цикл можна було виконати у вигляді одного рядка:

Поділися в соціальних мережах:

Схожі
Програми резервного копіювання linuxПрограми резервного копіювання linux
Історія команд linuxІсторія команд linux
Як подивитися прогрес dd linuxЯк подивитися прогрес dd linux
Функції bash в скриптахФункції bash в скриптах
Установка оновлень ubuntuУстановка оновлень ubuntu
5 Команд linux для початківців5 Команд linux для початківців
Копіювання файлів в linuxКопіювання файлів в linux
Як виконати linux команду з windowsЯк виконати linux команду з windows
Адміністрування linuxАдміністрування linux
Як завантажити файл linuxЯк завантажити файл linux
» » Написання скриптів на bash