Администрирование локальных сетей
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: реферат по культурологии, доклад по биологии
| Добавил(а) на сайт: Tolkachjov.
Предыдущая страница реферата | 5 6 7 8 9 10 11 12 13 14 15 | Следующая страница реферата
Оператор 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. Если аргументы в команде отсутствуют или пустые то команда
возвращает нулевой статус.
В качестве примера рассмотрим два скрипта:
d=’date &’ ; $d и d=’eval date &’ ; $d
первый из них не выполнится так как команда date воспримет символ & как аргумент а не как признак запуска в фоновом режиме, в результате чего первый скрипт не выполнится в отличии от второго.
Использование метасимволов.
Во всех конструкциях циклов и операторе case возможно использование метасимволов. Например скрипт из примера оператора цикла for
for i in `ls a*` do cp $i /tmp echo “$i was copied” done
можно переписать в более простом виде
for i in a* do cp $i /tmp echo “$i was copied” done
результат будет один и тот же.
2.3.1 Некоторые специальные команды
Рекомендуем скачать другие рефераты по теме: бесплатные тесты бесплатно, рефераты по медицине.
Категории:
Предыдущая страница реферата | 5 6 7 8 9 10 11 12 13 14 15 | Следующая страница реферата