Мегаобучалка Главная | О нас | Обратная связь


Управляющие структуры скриптов.



2019-07-04 228 Обсуждений (0)
Управляющие структуры скриптов. 0.00 из 5.00 0 оценок




В виду того что все управляющие структуры csh очень похожи на аналогичные в Bourne Shell кратко остановимся лишь на их синтаксисе. По своему синтаксису они очень близки с аналогисными командами языка программирования С.

Условный оператор

if ( expression ) then

                   command1

       command2

                   …

else

                   command1

       command2

                   …

endif

Если требуется запуск лишь одной команды то endif можно не ставить:

 

       if ( expression ) command

Цикл foreach

 

Этот цикл является полным аналогом цикла for Bourne Shell.

 

foreach index_variable (loop_values)

                   command1

       command2

                   ….

end

 

Если в качестве команды внутри цикла встречается команда break то выполнение цикла прерывается, если команда continue то продолжается но уже со следующим из значений параметра взятым из loop_values.

 

Цикл while

 

while (expression )

                   command1

       command2

                   …

end

 

полный аналог цикла while в Bourne shell.

 

Команда switch

 

Очень похожа на аналогичный оператор в языке С, является аналогом команды case в Bourne shell

 

switch ( word )

case string1:

       command1

       command2

       ….

       breaksw

case string2:

       command1

       command2

       ….

       breaksw

…..

default:

       command1

       command2

       …

endsw

 

Команда безусловного перехода goto

label:

       command1

       command2

       …

 

       goto label

 

осуществляет переход на команду следующую за меткой указаной в команде (в данном случае на command1).

 

Обработка прерываний

 

onintr label

 

Эта команда позволяет обрабатывать прерывания скриптов. При выполнении прерывания она выполняет переход на команду стоящей непосредственно за меткой label (аналогично выполнению goto label)

 


Korn Shell и POSIX shell

 

Общее знакомство с шеллами

Старт шеллов

Грамматика шеллов

Алиасинг

Возможности подстановок

Командная строчка и история команд

Управление заданиями

Программирование скриптов

Дополнительные команды

 

 

Общее знакомство с шеллами

Оба этих шелла базируються на Bourne Shell, но помимо этого они унаследовали много полезных функций Csh. Они рактически на 95% совместимы вверх с Bourne Shell и большинство программ написанных на Bourne Shell будут исполняться на них без изменений. Также следует отметить тот факт что по скорости исполнения они оперережают Bourne Shell.

 

Основные возможности унаследованные от Csh

 

· Буфер истории команд.

· Алиасинг

· Массивы

· Целочисленная математика

· Управление заданиями

Старт шеллов

В том случае если Korn или POSIX Shell являються логин-шеллами, после входа в систему и запуска они используют файл /etc/profile и файл .profile если последний существует в домашней директории пользователя. Независимо от того запускается ли шелл после логина или в любой другой момент времени, при старте он анализирует переменную окружения $ENV, которая обычно указывет на файл .profile или .kshrc. Если файл с именем указанным в этой переменной существует то он выполняется.

Грамматика шеллов

Как и Bourne Shell новые шеллы поддерживают пайпы,перенаправления ввода-вывода, последовательное выполнение команд используя разделители а также запуск программ в фоновом режиме. Единственное что стоит отметить это поддержка двунаправленных пайпов (co-process) которые будут рассмотрены позже.

Механизмы квотинга спецсимволов и расширения имен файлов посредством метасимволов в новых шеллах полностью аналогичны рассмотренным в Bourne Shell. Единственное что следует упомянуть, так это метасимволы ~ , # и % , свойства которых не были описаны раньше.

 

· метасимвол # используется для задания комментариев. Все что следует за ним игнорируется интерпретатором комманд.

· метасимвол ~ используется при раскрытия путей к файлам и директориям. При этом используются следующие правила:

 

тильда сама по себе или тильда до слеша / обозначает путь к домашнему каталогу (переменная окружения $HOME)

 

тильда до знака + раскрывается в текущий каталог (переменная окружения $PWD)

 

тильда до знака – раскрвывается в предыдущий рабочий каталог (переменная $OLDPWD)

и наиболее полезное правило: если после тильды идет строчка а затем слеш / то выполняется проверка вхождения этой строки в файл пользователей системы ( /etc/passwd ). В случае если эта сточка совпадает с именем пользователя из этого файла то результатом такого расширения пути станет домашний каталог пользователя взятый из этого файла.

 

· Метасимвол % используется при управлении заданиями и будет рассмотрен позднее.

 

Алиасинг

Механизм алиасинга в новых шелах аналогичен Csh.

 

           alias                               -выводит список всех установленных алиасов alias word=command        - устанавливает алиас word на команду command

           unalias word                        - снимает алиас word

           unalias -a                           - снимает все алиасы

alias –x word=command        - устанавливает алиас word на команду command с экспортом (только для ksh)

 

Отличительной особенностью ksh от POSIX Shella является возможность экспорта алиасов в другой шелл который не вытесняет текущий (для запуска используется системный вызов fork() на не exec как например в случае если скрипт начинается с #!/bin/…)



2019-07-04 228 Обсуждений (0)
Управляющие структуры скриптов. 0.00 из 5.00 0 оценок









Обсуждение в статье: Управляющие структуры скриптов.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (228)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)