Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovoy Юрков.doc
Скачиваний:
1
Добавлен:
18.09.2019
Размер:
339.97 Кб
Скачать

5. Екранування.

Як засоби екранування використовуються подвійні лапки (""), одинарні лапки (' ') та бек-слеш (\).

Можна в одному рядку записувати декілька присвоювань.

x=22 y=33 z=$x

A="$x" B='$x' C=\$x

D="$x + $y + $z" E='$x + $y + $z' F=$x\ +\ $y\ +\ $z

Тоді

echo A = $A B = $B C = $C

echo D = $D E = $E F = $F

eval echo evaluated A = $A

eval echo evaluated B = $B

eval echo evaluated C = $C

виведуть на екран

A = 22 B = $x C = $x

D = 22 + 33 + 22 E = $x + $y + $z F = 22 + 33 + 22

evaluated A = 22

evaluated B = 22

evaluated C = 22

"eval" - команда, що виконує означення змінних в рядку, що є аргументом.

Бек-слеш не тільки екранує наступний за ним символ, що дозволяє використовувати спеціальні символи просто як символи, що представляють самих себе, він може екранувати сам себе. Цей символ також може створювати ефект продовження рядка. Ефект продовження командного рядка забезпечує також символ конвеєра - "|".

6. Програмні структури

Як і в будь-якій мові програмування у тексті мовою shell можуть бути коментарі. Для цього використовується символ "#". Усе, що знаходиться в рядку лівіше від даного символу, сприймається інтерпретатором як коментар.

Як і в будь-якій процедурній мові програмування, в мові shell є оператори. Ряд операторів дозволяє керувати послідовністю виконання команд. У таких операторах часто необхідна перевірка умови, яка визначає напрямок продовження обчислень.

Умовний оператор ("if").

У загальному випадку оператор "if" має структуру:

if умова

then список

[elif умова

then список]

[else список]

fi

Оператор вибору ("case").

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

case рядок in

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

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

...

esac

"Рядок" (це може бути і один символ), що порівнюється із шаблоном. Потім "список команд" вибраного рядка.

Приклад:

echo -n " А какую оценку получил на экзамене?: "

read z

case $z in

5) echo Молодец ! ;;

4) echo Все равно молодец ! ;;

3) echo Все равно ! ;;

2) echo Все ! ;;

*) echo ! ;;

esac

Оператор циклу із перерахуванням ("for").

Оператор циклу "for" має структуру:

for ім'я [in список значень]

do

список команд

done

де "for" - це службове слово, що визначає тип циклу, "do" та "done" - це службові слова, що виділяють тіло циклу. Фрагмент "in список значень" може бути відсутнім.

Оператор циклу з істиною умовою ("while").

Оператор циклу "'while' має структуру:

while умова

do

список команд

done

де "while" - службове слово, що визначає тип циклу з істиною умовою. Список команд у тілі циклу повторюється до тих пір, доки зберігається істинність умови (доки умови не дорівнює 0) або цикл буде перерваний командами "break", "continue" або "exit".

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