Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_lab_OSUNIX_2006-ukr.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
759.81 Кб
Скачать

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 набуває такого вигляду:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]