Программирование на Shell (Unix)


ПРОГРАММНЫЕ СТРУКТУРЫ - часть 5


### # case-2: Справочник. # Для различных фирм по имени выдается # название холдинга, в который она входит case $1 in ONE|TWO|THREE) echo Холдинг: ZERO ;; MMM|WWW) echo Холдинг: Not-Net ;; Hi|Hello|Howdoing) echo Холдинг: Привет! ;; *) echo Нет такой фирмы ;; esac

При вызове "case-2 Hello" на экран будет выведено:

Холдинг: Привет!

А при вызове "case-2 HELLO" на экран будет выведено:

Нет такой фирмы

Коль скоро слово "case" переводится как "выбор", то это как бы намек на то, что можно эту структуру использовать для реализации простейших меню.

### # case-3: Реализация меню с помощью команды "case" echo "Назовите файл, а затем (через пробел) наберите цифру, соответствующую требуемой обработке: 1 - отсортировать 2 - выдать на экран 3 - определить число строк " read x y # x - имя файла, y - что сделать case $y in 1) sort < $x ;; 2) cat < $x ;; 3) wc -l < $x ;; *) echo " Мы не знаем такой команды ! " ;; esac

Разумеется, желания могут быть более сложные и на месте отдельных команд могут быть последовательности команд или вызовы более сложных расчетов.

Напишем команду "case-4", которая добавляет информацию к файлу, указанного первым параметром (если параметр один), со стандартного входа, либо (если 2 параметра) из файла, указанного в качестве первого параметра:

### # case-4: Добавление в файл. # Использование стандартной переменной. # "$#" - число параметров при вводе расчета # ">>" - перенаправление с добавлением в файл case $# in 1) cat >> $1 ;; 2) cat >> $2 < $1 ;; *) echo "Формат: case-4 [откуда] куда" ;; esac

"$1" (при "$#=1") - это имя файла, в который происходит добавление со стандартного входа.

"$1" и "$2" (при $#=2) - это имена файлов , из которого ("$1") и в который ("$2") добавлять.

Во всех других случаях (*) выдается сообщение о том, каким должен быть правильный формат команды.




Начало  Назад  Вперед



Книжный магазин