
- •7.080403 – Програмне забезпечення автоматизованих систем
- •1 Структура файлової системи, базовий та розгорнутий перелік команд ос unix
- •1.2 Підготовка до роботи
- •1.3 Методичні вказівки до виконання роботи
- •1.3.1 Процедура віддаленої реєстрації користувача на платформі unix
- •1.3.2 Файлова система
- •1.3.3 Середовище виконання процесів
- •1.3.4 Базові команди системи
- •1.4 Порядок виконання роботи
- •1.5 Завдання
- •1.7 Контрольні запитання
- •2 Редактор VI
- •2.3.3 Команди руху маркера по екрану монітора
- •2.3.4 Команди редактора, що забезпечують перехід у режим вводу
- •2.3.6 Команди копіювання
- •2.3.7 Команди пошуку вказаної символьної конструкції або літери
- •2.4 Порядок виконання роботи
- •2.5 Завдання
- •2.7 Контрольні запитання
- •3 Shell. Змінні оболонки shell. Застосування файла .Profile
- •3.3.2 Команда echo
- •3.3.3 Змінні середовища виконання
- •3.3.4 Файл .Profile
- •3.3.5 Використання лапок
- •3.3.6.1 Позиційні змінні (параметри)
- •3.3.6.2 Літерно-цифрові змінні (користувача)
- •3.3.6.3 Раніше визначені спеціальні змінні
- •3.3.7 Переадресація вводу-виводу за допомогою дескрипторів файлів
- •3.3.8 Шаблони, підстановки
- •3.3.9 Спеціальні символи shell операторів
- •3.4 Порядок виконання роботи
- •3.5 Завдання
- •3.7 Контрольні запитання
- •4 Shell. Оператори облонки shell. Програмування в оболонці shell
- •4.1 Мета роботи
- •4.2 Підготовка до роботи
- •4.3 Методичні вказівки до виконання роботи
- •4.3.1 Оператори мови shell
- •4.3.2 Синтаксис shell
- •If список команд
- •4.3.3 Створення та організація процедури у shell
- •4.3.4 Команди підтримки та їх особливості
- •4.3.4.1 Умовна перевірка: test
- •4.3.4.2 Оцінка арифметичних виразів expr
- •4.3.4.3 Команди true і false
- •4.3.4.4 Внутрішньорядкове введення документів
- •4.3.5 Передача параметрів до процедури shell
- •4.3.6 Приклади використання команд shell
- •4.3.6.1 Використання оператора if
- •If список команд
- •If список команд
- •4.3.6.2 Використання оператора case
- •4.3.6.3 Умовні цикли while та until
- •4.3.6.4 Організація циклу для списку: for
- •4.3.6.5 Керування циклами: break та continue
- •4.3.6.6 Кінець файла та вихід
- •4.4 Порядок виконання роботи
- •4.5 Завдання
- •4.7 Контрольні запитання
- •5 Мережні протоколи tcp/ip. Протокол telnet та протокол обміну файлами ftp
- •5.3.1.1 Командний режим telnet
- •5.4 Порядок виконання роботи
- •5.5 Завдання
- •6 Awk. Програмування на мові awk
- •6.3.1 Структура програми на мові awk
- •6.3.2 Поля
- •6.3.3 Вивід на друк
- •6.3.4 Форматований висновок
- •6.3.5 Прості шаблони
- •6.3.5 Вбудовані змінні
- •6.3.6 Змінним, обумовленим користувачем
- •6.3.7 Повідомлення про помилки
- •6.3.8 Вираження
- •6.3.8.2 Відносні вираження
- •6.3.8.3 Регулярні вираження
- •6.3.8.5 Символи
- •6.3.8.6 Комбінації виражень
- •6.3.8.6 Діапазони виражень
- •6.3.8.9 Вбудовані змінні
- •6.3.8.10 Арифметичні дії
- •6.3.8.11 Змінні поля
- •6.3.8.12 Деякі лексичні угоди
- •6.3.8.13 Вивід у файли
- •6.3.8.14 Вивід у канали
- •6.4 Порядок виконання роботи
- •6.5 Завдання
- •6.7 Контрольні запитання
- •Перелік рекомендованої літератури
4.3.4.2 Оцінка арифметичних виразів expr
Команда expr виконує арифметичні та логічні операції над цілими числами. Як її аргументи можна використовувати шаблони. Ця команда оцінює окреме висловлювання та записує результат у стандартний вивід. expr можна використовувати всередині зворотних лапок для встановлення значень змінних. Наприклад:
A=`expr $A + 1`
або
substring=`expr "$1" : '..\(.*\)'`
або
c=`expr "$1" : '.*'`
Найчастіше expr застосовується для підрахунку кількості ітерацій у циклах.
4.3.4.3 Команди true і false
Команди true та false повертають код завершення 0 або не 0, відповідно. Їх, звичайно, використовують для створення безумовних циклів, наприклад:
while true
do
echo forever
done
У результаті слово forever з’являтиметься на екрані до моменту натискання INTERRUPT.
4.3.4.4 Внутрішньорядкове введення документів
При виявленні командного рядка у вигляді:
command << eofstring
де eofstring – будь-який довільний рядок, shell сприйматиме всі наступні рядки як стандартне введення для команди (command) до моменту надходження рядка який містить тільки eofstring. (якщо додати знак (-) до символів переадресації (<<), то з кожного рядка документа, що вводитимуться, буде вилучено всі зайві подільники та знаки табуляції).
shell створює тимчасовий файл, який має документ, що вводиться, та виконує у ньому всі необхідні підстановки команд і змінних та тільки після цього пересилає його до вказаної команди. Для того щоб відмінити всі підстановки, потрібно ввести:
command <<\eofstring
Внутрішньорядкове введення документів особливо часто застосовується, коли невелика кількість вхідних даних, оскільки зручніше помістити їх зразу до процедури, ніж створювати окремий файл. Наприклад:
cat <<-xx
Таке повідомлення буде виведено на термінал без додаткових подільників та знаків табуляції.
4.3.5 Передача параметрів до процедури shell
У попередній лабораторній роботі було розглянуто застосування позиційних змінних. Тому достатньо навести приклад використання, щоб зрозуміти механізм передачі параметрів. Наприклад, була створена процедура ripple, яка має такі оператори:
while test $# != 0
do
echo $1 $2 $3 $4 $5 $6 $7 $8 $9
shift
done
Коли виконаємо процедуру ripple з параметрами
ripple a b c,
то вона виведе:
a b c
b c
c,
що демонструє використання змінних при виконанні команди shift.
4.3.6 Приклади використання команд shell
4.3.6.1 Використання оператора if
shell надає можливість структурувати умовні переходи за допомогою оператора if. Найпростіша форма оператора if набуває вигляду:
If список команд
then
список команд
fi
Список команд, розташований в умовах оператора if, виконується, і коли код завершення (команда була виконана успішно) останньої команди списку дорівнює 0, то виконується список команд, вказаний після then. Слово fi означає кінець команди if.
Щоб виконати альтернативний набір команд оператора if потрібно отримати негативне завершення виконання останньої команди зі списку, що знаходиться в умовах оператора. У такому разі, виконується список команд, що вказані після умовної конструкції else. В даному випадку оператор if набуває такого вигляду: