Сценарії в операційній системі linux - студопедія

Лабораторна робота 5

Будь-яка зі стандартних оболонок операційних систем сімейства UNIX / Linux дозволяє створювати командні файли (ще звані, сценаріями, від англ. Script). Слід мати на увазі, що вони виконуються так, як ніби команди, записані в ньому, послідовно вводяться з клавіатури. Цей режим називається інтерпретація. При якому важко очікувати ефективної роботи. Але програми, написані такою мовою, враховуючи різноманітність підтримуваних ними коштів, можуть бути досить складними.

Сценарії використовують для автоматичного виконання деякого набору команд. Це зручно, якщо такі команди виконується постійно. Така ситуація може бути пов'язана з різними системними подіями, наприклад:

- завантаження операційної системи;

- реєстрація в системі чергового користувача;

- запуск програмного комплексу, що забезпечує системні функції (іноді говорять «служби»).

Як уже зазначалося, якщо ми хочемо запустити на виконання сценарій, він повинен мати право на виконання (параметр х), яке для власника файлу додаються командою

chmod u + x <имя файла>

Але запустити текстовий файл з командами не має прав на виконання можна використовую символ «.» (Крапка) -див. лабораторна робота 2, пункт 2.3.

Командні оболонки (командні інтерпретатори) сімейства UNIX / Linux мають розвинену мову програмування в великій мірі орієнтований на автоматизацію завдань адміністрування ОС. У файлі сценарію крім команд (імені виконуваного файлу з параметрами) можуть міститися оператори. В останніх, природно, використовують змінні.

В рамках цієї лабораторної роботи буде порушено не всі можливості мовних засобів сценаріїв оболонок UNIX / Linux (НЕ будуть порушені питання створення функції і використання масивів).

Почнемо опис мови сценарію оболонки UNIX з змінних. Можна виділити кілька їх типів. Один з них був розглянутий раніше. Це змінні оточення. Прикладами їх є HOME і TERM.

Другий тип змінних створюється розробником сценарію. Їх часто називають призначені для користувача (або змінні, визначені користувачем). Задати їх значення можна безпосереднім привласненням або командою read. Крім такого типу змінних, а також розглянутих раніше змінних оточення, мова програмування сценаріїв має власні, вбудовані змінні і зумовлені або спеціальні преременние.

Наведемо два способи привласнення значень призначеним для користувача змінним:

1. Безпосереднє присвоювання для змінних символьного типу.

2. Безпосереднє присвоювання для змінних числових значень.

Перейдемо до опису вбудованих змінних. Їх ім'я, як правило, складається з двох символів. Першим з них є «$». Наприклад, в такій змінній $ 0 міститься ім'я файлу сценарію. Якщо в сценарії з ім'ям scr1 записані рядки, серед яких є така

echo "Виконується" $ 0

то результат її виконання буде таким

Такі спеціальні змінні $ 1. $ 2. містять параметри виклику сценарію. Якщо таких параметрів більше 9, то використовуємо . Наведемо приклад. Якщо сценарій з ім'ям scr1 викликався такий рядком

то такі оператори

приведуть до наступного результату

буде виведено тільки

Іншими вбудованими змінними сценаріїв є такі:

$ # - число параметрів сценарію.

$? - код повернення останнього процесу.

$ * І $ @ - значення всіх параметрів переданих сценарієм.

Наведемо приклад використання вбудованих змінних оболонки. У ньому і далі останні два рядки грають таку роль. Перша, після виведення результатів роботи скрипта, виводить повідомлення press key. Система зупиняється і продовжить роботу тільки після натискання клавіші .

Текст сценарію scr2

РЕЗУЛЬТАТ і пояснення

#! / Bin / bash clear echo echo kol_vo param $ # echo echo "all param => $ *" echo "all param 2 => $ @" echo "param_ry: one $ 1 | two $ 2 | three $ 3" ​​echo press key read q

Якщо сценарій викликати наступним чином, scr2 1 two 3-th то отримаємо такі результати. 1 two 3-th 1 two 3-th 1 | two | 3-th press key

Тепер перейдемо до опису операторів, використовуваних в сценаріях. Вище ми вже згадували оператор echo. а також те, що для виведення на екран значень змінних використовується «$». Для введення значень змінної а використовується оператор read. У наведеному прикладі показано присвоєння символьних і чисельних значень змінним.

Текст сценарію scr3

РЕЗУЛЬТАТИ і пояснення

#! / Bin / bash clear read a b = $ a + 1 let c = $ a + 1 let d = $ b + 1 echo $ a $ b echo "c" $ c "d" d echo press key read q

Якщо сценарій викликати наступним чином, scr3 то отримаємо такі результати. Вводите 3 3 3 + 1 з 4 d 5 press key

У сценаріях можна використовувати керуючі конструкції. Одна з них передбачає використання оператора if. Формат його записи не завжди однаковий, наприклад, таким

В іншій формі він записується так

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

Текст сценарію scr4

РЕЗУЛЬТАТИ і пояснення

#! / Bin / bash clear echo echo ls1 = `ls -a / root | wc -l` echo echo "kol_vo files / root $ ls1" echo ls2 = `ls -a / home / asplinux | wc -l` echo echo "kol_vo files / home / asplinux $ ls3" echo if [$ ls2 -lt $ ls1]; then echo "/ root" fi if [$ ls2 -eq $ ls1]; then echo "/ root" fi if [$ ls2 -gt $ ls1] then echo "/ asplinx" fi echo press key read q

Якщо сценарій викликати наступним чином, scr4 то отримаємо такі результати. Значення змінної - результат ls kol_vo files / root 22 Значення змінної - результат ls kol_vo files / home / asplinux 31 / asplinux press key

В операторі if для завдання умов можуть бути використані наступні комбінації символів:

Схожі статті