Реферат: Администрирование локальных сетей

do command-list2

done

конструкция этого цикла полностью аналогична циклу while за исключением того что тело цикла (набор команд command-list2) выполняется как минимум один раз не зависимо от успешности выполнения условия цикла (набор команд command-list1).

Оператор case

Оператор case является расширением стандартного условного оператора if . Если есть условие при котором может реализовываться множество вариантов то вместо серии операторов if лучше использовать один case .

case parameter in

pattern1 [ | pattern2 …] ) command-list1 ;;

pattern2 [ | pattern3 …] ) command-list2 ;;

esac

шаблоны pattern определяют варианты параметра parameter. При совпадении параметра с одним из шаблонов будет выполнен соответствующий список команд command-list. В квадратных скобках ([ | pattern2 …] ) указаны дополнительные варианты разделенные символом ( | ) которые может принимать parameter помимо основного. Заканчивается список шаблонов скобкой. Более понятней структура этого оператора станет после рассмотрения примера:

case $i in

-d | -c ) mkdir dir1

echo “directory dir1 was created” ;;

-r ) rmdir dir1

echo “directory dir1 was removed” ;;

* ) echo “invalid option” ;;

esac

В этом примере скрипт получив при запуске один из аргументов –d или –c попытается создать директорию с именем dir1 , получив аргумент –r попытается ее стереть. Во всех остальных случаях (шаблон *) он выдаст предупреждение о неправильном аргументе.

Примечание: обратите внимание на то что порядок следования гшаблонов в операторе case имеет большое значение. Так если строку

* ) echo “invalid option” ;;

поставить в самое начало, то на ней будет все время терминироваться скрипт.

Команда . (точка )

Каждый раз когда Вы запускаете шелл программы, создается еще одна копия шелла в которой они выполняются. Поэтому если Вы написали шелл скрипт, то все переменные “живут” только во время выполнения скрипта. Если вы хотите чтобы все переменные из шелл программы были в вашем текущем окружении запускать скрипт нужно в текущем шеле, это достигается использованием команды . (точка).

. scriptname

Команда eval

eval [arg ...]

Аргументы читаються и соединяются в одну команду. Затем эта команда выполняется шеллом и статус выхода команды возвращается как результат команды eval. Если аргументы в команде отсутствуют или пустые то команда возвращает нулевой статус.

В качестве примера рассмотрим два скрипта:

К-во Просмотров: 1166
Бесплатно скачать Реферат: Администрирование локальных сетей