Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сало залік.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
133 Кб
Скачать
☆

35. Оператор Case.

Оператор вибору "case" має структуру:

case строка in

шаблон) список команд;;

шаблон) список команд;;

...

esac

Тут "case" "in" і "esac" - службові слова. "Рядок" (це може бути і один символ) порівнюється з

"шаблоном".Потім виконується "список команд"вибраної рядка.

Незвично виглядають в кінці рядків вибору ";;", але написати тут ";" булоб помилкою. Для кожної

альтернативи може бути виконано кілька команд.

Якщо ці команди будуть записані в один рядок, то символ ";" будевикористовуватися як

роздільник команд. Зазвичай останній рядок вибору має шаблон "*", що в структурі "case"означає "будь-яке значення". Цей рядок вибирається, якщо не відбулосязбіг значення змінної (тут $ z) ні з одним з раніше записанихшаблонів, обмежених дужкою ")". Значення проглядаються в порядкузапису.

36. Функції інтерпритатора Shell.

Інтерпретатор команд shell дозволяє групувати набори команд або конструкцій, створюючи повторно використовувані блоки. Подібні блоки називаються shell-функціями.

Функція складається з двох частин:

^ Мітка функції Тіло функції

У якості мітки виступає ім'я функції, тіло функції утворює набір команд, складових саму функцію. Ім'я функції повинно бути унікальним; це пов'язано з тим, що у разі наявності двох різних функцій з однаковими іменами сценарій просто не зможе викликати потрібну функцію.

Формат, що застосовується для визначення функцій, має наступний вигляд:

ім'я функції ()

{

команда1

...

}

Можна також використовувати ключове слово function перед ім'ям функції:

function імя_функциі ()

{

}

Функцію можна уявляти собі як деякий вид сценарію, що знаходиться всередині іншого сценарію, але в цьому випадку слід враховувати одну особливість. При виклику функції вона залишається в поточному інтерпретаторі shell, а її копія зберігається в пам'яті. З іншого боку, якщо викликається або виконується сценарій з іншого сценарію, створюється окремий інтерпретатор shell. У такому випадку стають недійсними всі існуючі змінні, визначені в попередньому сценарії.

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

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

37. Файл функцій.

Файл функцій містить кілька регулярно використовуваних функцій. На початку цього файлу повинна знаходитися конструкція #! / Bin / sh. Файлу функцій можна присвоїти будь-яке ім'я, потім завантажити цій файл в середу інтерпретатора shell. Як тільки файл буде завантажений інтерпретатором shell, з'являється можливість виклику функцій з командного рядка або з сценарію. Для перегляду всіх визначених функцій можна скористатися командою set. Потік виводу буде містити всі функції, які були завантажені інтерпретатором shell.

Для зміни будь-який з раніше визначених функцій використовується команда unset , після чого функція буде вивантажено з інтерпретатора shell . Після внесення змін у файл функцій необхідно виконати його перезавантаження . В результаті цього дану функцію буде неможливо викликати з користувача сценаріїв або інтерпретатора команд , хоча фізичного видалення функції при цьому не відбувається . Деякі інтерпретатори команд можуть розпізнавати зміни , і в цьому випадку застосування команди unset зовсім не обов'язково. Проте все ж в цілях безпеки слід використовувати дану команду при модифікації функцій інтерпретатора shell .