Case строка-образец in

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

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

...

Esac

Строка-образец (это может быть и один символ) сравнивается со строкой-шаблоном. Если строка-образец совпадает со строкой-шаблоном, то выполняется соответствующий список команд (если команды записываются в одну строку, то ";" будет использоваться как разделитель команд).

Обычно последняя строка выбора имеет шаблон "*", что в структуре "case" означает "любое значение". Эта строка выбирается, если не произошло совпадение значения переменной (строки-образца) ни с одним из ранее записанных шаблонов.

Эта команда часто используется для организации меню. Создадим командный файл, который будет по выбору пользователя совершать ту или иную операцию с указанным файлом.

echo "Введите имя файла: "

read x

echo " Выберите какую операцию выполнить с файлом:

1 - отсортировать

2 - выдать на экран

3 - определить число строк "

read y

case $y in

1) sort < $x;;

2) cat < $x;;

3) wc -l < $x;;

*) echo " Ошибка. Нет такой команды";;

esac

Задание: Создайте меню, в котором пользователю предлагается создать, копировать, удалить, переместить, переименовать указанный файл. Все данные, необходимые для выполнения этих команд, вводятся пользователем с клавиатуры.

Оператор цикла while (с истинным условием)

Структура цикла while предпочтительнее тогда, когда неизвестен заранее точный список значений параметров или этот список должен быть получен в результате вычислений в цикле.

While условие

do

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

Done

Список команд в теле цикла повторяется до тех пор, пока сохраняется истинность условия или цикл не будет прерван изнутри специальными командами ("break", "continue" или "exit"). При первом входе в цикл условие должно выполняться.

Выполнение арифметических операций: команда expr

Команда expr вычисляет значение выражения, переданного в качестве аргумента, и посылает результат на стандартный вывод. Используется для выполнения операций над переменными языка Shell.

expr 11 + 49 + 2 + 64 + 1

127 (результат)

В expr можно применять следующие арифметические операторы: +, -, *, /, % (остаток). Все операнды и операции должны быть разделены пробелами. Знак умножения следует заключать в кавычки (одинарные или двойные), например: '*', так как символ * имеет в Shell специальный смысл. Аналогично в кавычки заключаются скобки, знаки сравнений.

Еще пример использования expr (фрагмент):

count=`wc - l < $1`

tot=100

count =`expr $tot / $count`

echo $count

tot=`expr $tot + 1`

echo $tot


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: