- •1. Введення
- •2. Прості засоби|кошти| shell
- •2.1. Структура команд
- •2.2. Угрупування команд.
- •2.3. Перенаправлення команд
- •2.4. Генерація імен файлів.
- •2.5. Командні файли.
- •3. Середовище|середа| shell (змінні і параметри)
- •3.2. Екранування
- •3.3. Маніпуляції з|із| shell-змінними
- •3.4. Експорт змінних
- •3.5. Параметри
- •3.6. Підстановки shell-інтерпретатора
- •3.7. Програмне середовище
- •4. Програмні структури
- •4.1. Команда test ("[ ]")
- •4.2. Умовний оператор "if"
- •4.3. Оператор виклику ("case")
- •4.4. Оператор циклу з|із| переліком|перерахуванням| ("for")
- •4.5. Оператор циклу з|із| передумовою ("while")
- •4.6. Оператор циклу з|із| постумовою ("until")
- •4.7. Порожній оператор
- •4.8. Функції в shell
- •4.9. Обробка переривань ("trap")
- •5. Розробка графічного інтерфейсу за допомогою бібліотеки Qt3. Створення в kDevelop базової структури додатку
- •5.1. Словник
- •5.2. Створення|створіння| проекту
- •5.3. Робота з Qt Designer
- •5.4. Розробка інтерфейсу програми
- •5.5. Додавання|добавка| виджетов|
- •5.6. Створення|створіння| проміжків між виджетами|
- •5.7. Сигнали і слоти
- •5.8. Написання коду
- •6. Литература
4.7. Порожній оператор
Порожній|пустий| оператор має формат
:
Нічого не робить|чинить|. Повертає значення "0". Наприклад, в конструкції "while :" або ставити на початку командного файлу, щоб гарантувати, що файл не буде прийнятий за виконуваний файл для "csh".
4.8. Функції в shell
Функція дозволяє підготувати список команд shell для подальшого|наступного| виконання.
Опис функції має вигляд|вид|:
ім'я()
{
список команд
}
після чого звернення до функції відбувається|походить| по імені. При виконанні функції не створюється нового процесу. Вона виконується в середовищі|середі| відповідного процесу. Аргументи функції стають її позиційними параметрами; ім'я функції - її нульовий параметр. Перервати виконання функції можна оператором "return [n]", де (необов'язкове) "n" - код повернення.
Приклад|зразок|. Виклик на виконання файлу "fun"
echo $$
fn() # опис функції
{
echo xx=$xx
echo $#
echo $0: $$ $1 $2
xx=yy ; echo xx=$xx
return 5
}
xx=xx ; echo xx=$xx
fn а b # виклик функції "fn" з|із| параметрами
echo $?
echo xx=$xx
що містить|утримує| опис і виклик функції "fn", видасть на екран:
749
xx=xx
xx=xx
2
fun: 749 а b
xx=yy
5
xx=yy
4.9. Обробка переривань ("trap")
Буває необхідно захистити виконання програми від переривання.
Найчастіше доводиться зустрічатися з|із| наступними|слідуючими| перериваннями, відповідними сигналам:
0 |
вихід з|із| інтерпретатора |
1 |
відбій (відключення видаленого|віддаленого| абонента) |
2 |
переривання від <Del>, |
9 |
знищення (не перехоплюється) |
15 |
закінчення виконання. |
Для захисту від переривань існує команда "trap", що має формат:
trap 'список команд' сигнали
Якщо в системі виникнуть переривання, чиї сигнали перераховані через пропуск|прогалину| в "сигнали", то буде виконаний "список команд", після чого (якщо в списку команд не була виконана команда "exit") управління повернеться в точку переривання і продовжиться|триватиме| виконання командного файлу.
Наприклад, якщо перед припиненням по перериваннях виконання якого те командного файлу необхідно видалити|знищити,віддалити| файли в "/tmp", то це може бути виконано командою "trap":
tarp 'rm /tmp/* ; exit 1' 1 2 15
яка передує іншим командам файлу. Тут, після|потім| видалення|віддалення| файлів буде здійснений вихід "exit" з|із| командного файлу.
Команда "trap" дозволяє і просто ігнорувати переривання, якщо "список команд" порожньої|пустої|. Так наприклад, якщо команда "cmd" виконується дуже довго, а користувач вирішив|розв'язав| відключитися від системи, то для продовження виконання цієї команди можна написати, запустивши команду у фоновому режимі:
( trap '' 1; cmd )&
Контрольні питання і завдання:
Яке призначення команди test? Який її формат?
Які умови перевірки файлів, рядків існують в shell?
Поясніть призначення і структуру оператора if в shell?
Поясніть призначення і структуру оператора case?
Поясніть призначення і структуру операторів циклу for, while, until?
Як використовувати функції в shell?
Для чого призначена команда trap? Наведіть приклад її використання.
Завдання 1: Створити командний файл, в якому:
Виводиться на екран ім'я командного файлу;
Виводиться вміст файлу (файл повинен існувати), ім'я якого передається першим параметром командного файлу, його рядки нумеруються, сортуються в зворотному порядку, зберігаються у файлі і відображуються відображуються на екрані;
Створюється з клавіатури і відображується відображується на екрані файл, ім'я якого задається другим параметром командного файлу.
Завдання 2: Створити командний файл, що реалізовує меню з трьох пунктів:
1-й пункт – вивести на екран ім'я користувача і ім'я поточної директорії;
2-й пункт – вивести інформацію про дискову і оперативну пам'ять в даній системі;
3-й пункт – підтвердження.
Завдання 3: Створити командний файл, що видаляє всі файли поточного каталога в диалоговому режимі.
Завдання 4: Створити командний файл, який:
Через вхідні параметри приймає від одного до декількох файлів;
ВідображуєВідображує на екрані їх вміст;
Сортує в зворотному порядку;
Відображує Відображує на екрані відсортований файл і зберігає його у файлі з тим же ім'ям, додаючи суфікс _sorted.
|
|
|
|