Разделы презентаций


Занятие 13 МДК.02.01 Программное обеспечение компьютерных сетей 3-курс

Содержание

Логические структуры командного интерпретатора

Слайды и текст этой презентации

Слайд 1Занятие 13
МДК.02.01 Программное обеспечение компьютерных сетей 3-курс

Занятие 13МДК.02.01 Программное обеспечение компьютерных сетей 3-курс

Слайд 2 Логические структуры командного интерпретатора

Логические структуры командного интерпретатора

Слайд 3Логические структуры командного интерпретатора
До сих пор мы рассматривали командные

файлы, в которых команды выполнялись последовательно.
В подавляющем боль­шинстве

случаев так не бывает.
Почти все программы реали­зуют алгоритмы с ветвлениями и различными переходами.
Ко­мандные файлы в этом плане не являются каким-то исключением.
Логические структуры командного интерпретатора  До сих пор мы рассматривали командные файлы, в которых команды выполнялись последовательно.

Слайд 4Логические структуры командного интерпретатора
Во всех языках высокого уровня,

включая командный интерпретатор shell, есть программные конструкции, позволяющие изменять

последова­тельность выполнения команд в зависимости от тех или иных условий.
Их часто называют логическими структурами, и благо­даря им язык командного интерпретатора приобретает особую гибкость и мощь.
Логические структуры командного интерпретатора  Во  всех языках высокого уровня, включая командный интерпретатор shell, есть программные

Слайд 5Логические структуры командного интерпретатора
Большинство логических конструкций shell напоминает

анало­гичные им логические структуры, имеющиеся в

таких языках высокого уровня, например, как С («си») или Fortran.
Практически все логические структуры командного интерпретатора используют коды завершения команд для определения дальнейшей последо­вательности выполнения операторов.
Логические структуры командного интерпретатора  Большинство логических конструкций  shell напоминает анало­гичные  им логические  структуры,

Слайд 6Логические структуры командного интерпретатора
Код завершения показывает, с каким результатом

выполнилась команда.
В случае удачного завершения команда возвращает 0,
В случае

неудачи выводится значение, отличное от нуля.
Код завершения команды по умолчанию не выводится на экран — чтобы его увидеть, нужно задать специальный параметр $?.
Логические структуры командного интерпретатора  Код завершения показывает, с каким результатом выполнилась команда.В случае удачного завершения команда

Слайд 7Логические структуры командного интерпретатора
Например:
# pwd
/root
# echo

$?
0
#

Команда pwd определяет текущий каталог, команда echo выводит на

экран код завершения команды pwd . Команда (pwd) выполнилась без ошибок, поэтому вернула значение кода ошибки, равное 0.
Логические структуры командного интерпретатора  Например: # pwd /root # echo $? 0#Команда pwd определяет текущий каталог,

Слайд 8Логические структуры командного интерпретатора
Ещё один пример:
# cat filel


cat: filel: No such file or directory
# echo $?


1
#

Данный файл или каталог отсутствует. Команда cat, которая выводит содержимого файла на экран монитора, завершилась неудачно, поэтому код ошибки равен 1.
Логические структуры командного интерпретатора  Ещё один пример: # cat filel cat: filel: No such file or

Слайд 9Логические структуры командного интерпретатора
Следует сказать, что почти все логические

структуры предназначены специально для использования в командных файлах и не

работают непосредственно в командной строке, за исключением команды test, которую мы рассматривали в начале.
Анализ логических структур командного интерпретатора shell начнем с оператора цикла for.
Логические структуры командного интерпретатора  Следует сказать, что почти все логические структуры предназначены специально для использования в

Слайд 10Логические структуры командного интерпретатора
В общем виде цикл for можно

представить так:

for переменная in список_переменных
do


команда_1
команда_2

команда_n
done
Логические структуры командного интерпретатора  В общем виде цикл for можно представить так: for переменная in список_переменных

Слайд 11Логические структуры командного интерпретатора
В этой конструкции жирным шрифтом выделены

ключевые сло­ва, которые обязательно должны присутствовать в цикле for.
Цикл

for последовательно выполняет команды, находящиеся между ключевыми словами do и done.
При этом выполняется последовательный проход по списку список_переменных и очередное выбираемое значение из этого списка присваивается переменной переменная, имя которой указано слева от ключевого слова in.
Список переменных может задаваться как символьными константами, так и дискретными значениями, разделенными пробелами.
Логические структуры командного интерпретатора  В этой конструкции жирным шрифтом выделены ключевые сло­ва, которые обязательно должны присутствовать

Слайд 12Логические структуры командного интерпретатора
Следующий фрагмент программного кода демонстрирует свой­ства

цикла for:

for x in 100 1000 10000
do

echo "$x"
done
echo
Результатом выполнения такого цикла будет такая последовательность чисел на экране:

100
1000
10000
Логические структуры командного интерпретатора  Следующий фрагмент программного кода демонстрирует свой­ства цикла for: for x in 100

Слайд 13Логические структуры командного интерпретатора
Следующий фрагмент программного

кода выводит на экран список файлов

текущего каталога, размер которых отличен от нуля:

for х in *
do
test -s $x && ls -l $x
done
(test –s – не пустой)
Логические структуры командного интерпретатора  Следующий  фрагмент  программного  кода  выводит  на

Слайд 14Логические структуры командного интерпретатора
Переместить файлы из каталогов, указанных в

списке перемен­ных, в другой каталог можно с помощью следующего программ­ного

кода:
echo enter the directory path (введите путь к каталогу)
read path
test -e $path || mkdir $path
for file in dirl dir2 dir3
do
mv $file $path/$file
Done
Команда test -e $path || mkdir $path создает каталог с именем, заданным переменной path, если таковой отсутствует.
Логические структуры командного интерпретатора  Переместить файлы из каталогов, указанных в списке перемен­ных, в другой каталог можно

Слайд 15Логические структуры командного интерпретатора
Далее мы рассмотрим логическую структуру высокого

уровня, имеющую название оператор условия if.
Структуру оператора if в

общем виде можно представить так:

if условие
then
команда_1
команда_2

команда_n
fi
Логические структуры командного интерпретатора  Далее мы рассмотрим логическую структуру высокого уровня, имеющую название оператор условия if.

Слайд 16Логические структуры командного интерпретатора
Здесь условие представляет собой определенное выражение.
От

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

словами then и fi.
Если условие является истинным, то команды будут выполнять­ся.
Если условия ложные, то они будут пропущены.
Условие представ­ляет собой определенное выражение, заключенное в квадратные скобки.
Логические структуры командного интерпретатора  Здесь условие представляет собой определенное выражение.От его истинности зависит, будут ли выполняться

Слайд 17Логические структуры командного интерпретатора
Например:
[$I -gt 100 -а $I

-lе 1000]

Это выражение будет истинно, если переменная I :
больше

100
и
меньше или равна 1000.

Рассмотрим несколько примеров применения оператора if.
Логические структуры командного интерпретатора  Например: [$I -gt 100 -а $I -lе 1000] Это выражение будет истинно,

Слайд 18Логические структуры командного интерпретатора
Следующий фрагмент программного кода выполняет поиск

сло­ва в текстовом файле:
echo Enter the word and filename


read word file
if grep $word $file
then
echo $word found in $file
fi
Выполняющийся процесс ожидает ввода с консоли слова, кото­рое следует искать, и имени файла, после чего анализирует содержимое файла. При обнаружении слова на экран выводится соответствующее сообщение.
Логические структуры командного интерпретатора  Следующий фрагмент программного кода выполняет поиск сло­ва в текстовом файле: echo Enter

Слайд 19Логические структуры командного интерпретатора
Логическая структура if имеет еще одну

форму, в которой используется оператор else:

if условие
then


команда_1
команда_2
else
команда_3
команда_4
fi
Логические структуры командного интерпретатора  Логическая структура if имеет еще одну форму, в которой используется оператор else:

Слайд 20Логические структуры командного интерпретатора
Предыдущий пример можно модифицировать таким образом,

чтобы в нем использовался оператор if.. .else:

echo Enter the

word and filename
read word file
if grep $word $file >/dev/null
then
echo $word found in $file
else
echo $word is NOT found in $file
fi
Логические структуры командного интерпретатора  Предыдущий пример можно модифицировать таким образом, чтобы в нем использовался оператор if..

Слайд 21Логические структуры командного интерпретатора

Выполняющийся процесс ожидает ввода с консоли

слова, кото­рое следует искать, и имени файла, после чего анализирует

содержимое файла.
Если слово обнаружено, то выводится сообщение:
echo $word found in $file

иначе выводится другое сообщение:
echo $word is NOT found in $file
Логические структуры командного интерпретатора  Выполняющийся процесс ожидает ввода с консоли слова, кото­рое следует искать, и имени

Слайд 22Логические структуры командного интерпретатора
В этом примере используется устройство:
/dev/null
Оно являющееся

приемником ненужной или нежелательной информации, кото­рая может появляться в результате

выполнения команд.
Пе­реназначение вывода в /dev/null применяется для "удаления мусора".
Логические структуры командного интерпретатора  В этом примере используется устройство:/dev/nullОно являющееся приемником ненужной или нежелательной информации, кото­рая

Слайд 23Логические структуры командного интерпретатора
Альтернативой оператору if в ряде случаев

может служить команда test, с которой мы уже сталкивались ранее.


Как и if, данная команда проверяет истинность определенных условий и полезна при организации ветвлений в программе.
Во многих случаях команда test применяется вместе с оператором if.
Команда test может принимать целый ряд опций:
• -r файл — условие истинно, если файл существует и досту­пен для чтения;
• -w файл — условие истинно, если файл существует и досту­пен для записи;

Логические структуры командного интерпретатора  Альтернативой оператору if в ряде случаев может служить команда test, с которой

Слайд 24Логические структуры командного интерпретатора
• -х файл — условие истинно,

если файл существует и досту­пен для выполнения;
• -s файл

— условие истинно, если файл существует и его раз­мер больше нуля;
• переменная_1 -eq переменная_2 — истинно, если переменная_1 равна значению переменная_2;
• переменная_1 -nе переменная_2 — истинно, если переменная_1 не равна значению переменная_2.
Логические структуры командного интерпретатора  • -х файл — условие истинно, если файл существует и досту­пен для

Слайд 25Логические структуры командного интерпретатора
Следующий фрагмент программного кода, в котором

использу­ется как оператор if, так и команда test, отображает на

экране дисплея содержимое текстового файла, имя которого будет зада­но в командной строке:

if test -f $1
then
cat $1
fi
Логические структуры командного интерпретатора  Следующий фрагмент программного кода, в котором использу­ется как оператор if, так и

Слайд 26Логические структуры командного интерпретатора
Следующий тип логических структур, который мы

рассмотрим, операторы цикла while и until.
Оператор while можно представить

следующим образом:
while условие
do
команда_1
команда_2

команда_n
done
Логические структуры командного интерпретатора  Следующий тип логических структур, который мы рассмотрим, операторы цикла while и until.

Слайд 27Логические структуры командного интерпретатора
Оператор while повторяет заданную группу команд,

если усло­вие выполнения соответствует истине.
При этом условие прове­ряется перед

выполнением самой первой команды из списка.
Поэтому вполне возможно, что список не будет выполнен ни разу.
Логические структуры командного интерпретатора  Оператор while повторяет заданную группу команд, если усло­вие выполнения соответствует истине. При

Слайд 28Логические структуры командного интерпретатора
Рассмотрим пример использования оператора while.
Предполо­жим,

что необходимо записать символьные данные в файл с именем textfile.


Для окончания записи данных нужно нажать комбинацию клавиш +.
После этого содержимое файла будет отображено на дисплее.
Исходный текст командного фай­ла показан далее:
Логические структуры командного интерпретатора  Рассмотрим пример использования оператора while. Предполо­жим, что необходимо записать символьные данные в

Слайд 29Логические структуры командного интерпретатора
echo Please enter one or more

words and press Enter
echo Please end the list of

words by pressing Control-D
while read x
do
echo $x >> textfile
done
echo textfile contains the following words:
(содержит следующие слова)
cat textfile
Логические структуры командного интерпретатора  echo Please enter one or more words and press Enter echo Please

Слайд 30Логические структуры командного интерпретатора
Что же касается оператора until, то

он представляет собой разновидность оператора while.
Основное отличие состоит в

том, что в while цикл выполняется, пока условие является истин­ным, в то время как в until повторение цикла осуществляется до тех пор, пока условие ложно.
Далее приводится пример использования оператора until.
Следующий фрагмент программного кода каждые 300 секунд проверяет присутствие на диске файла newtmp и, когда он соз­дан, делает его архивную копию с именем newtmp.arch, удаляя оригинал:
Логические структуры командного интерпретатора  Что же касается оператора until, то он представляет собой разновидность оператора while.

Слайд 31Логические структуры командного интерпретатора
until test -r newtmp
do

sleep 300
echo Waiting until file is created...
done


echo File created. Making archive...
echo newtmp|cpio -ovB > newtmp.arch
rm newtmp
Логические структуры командного интерпретатора  until test -r newtmp do  sleep 300  echo Waiting until

Слайд 32Логические структуры командного интерпретатора
Последний оператор, который мы рассмотрим и

который позволяет создавать программы с множественными ветвлениями.
Это оператор case.
Он

удобен для организации ветвления программы и работает по принципу совпадения шаблонов.
Вообще, оператор case можно заменить группой операторов if...else.
Однако во многих случаях использование case удобнее.
Оператор case имеет следующий формат:

Логические структуры командного интерпретатора  Последний оператор, который мы рассмотрим и который позволяет создавать программы с множественными

Слайд 33Логические структуры командного интерпретатора
case переменная
in


шаблон_1)команда_11
команда_12



команда_1N;;
шаблон_2)команда_21
команда_22

команда_2N;;
шаблон_N)команда_N1
команда_N2

команда_NN;;
esac
Логические структуры командного интерпретатора  case переменная    in  шаблон_1)команда_11

Слайд 34Логические структуры командного интерпретатора
Здесь переменная сравнивается со всеми шаблонами,

причем первое же совпадение приводит к выполнению соответствующей группы команд

из списка.
Образец шаблон_N может включать обычные метасимволы командной оболочки shell.
Рассмотрим пример командного файла, исходный текст которого показан далее:
Логические структуры командного интерпретатора  Здесь переменная сравнивается со всеми шаблонами, причем первое же совпадение приводит к

Слайд 35Логические структуры командного интерпретатора
echo Enter:
echo 1 - show

current directory
echo 2 - show content while read i


do
case $i in
l)
pwd
continue;;
2)
ls -l
continue;;
*)
break;;
esac
done
Логические структуры командного интерпретатора  echo Enter: echo 1 - show current directory echo 2 - show

Слайд 36Логические структуры командного интерпретатора
Данный командный файл позволяет, в зависимости

от выбран­ной опции:
- либо просмотреть текущий каталог,


- либо содержи­мое этого каталога.
Здесь нам встретились две команды — break и continue.
Команда break выполняет безусловный выход из тела цикла.
А команда continue досрочно завершает текущую итерацию цикла while или for и переходит к следующей.
Логические структуры командного интерпретатора  Данный командный файл позволяет, в зависимости от выбран­ной опции:  -

Слайд 37Список литературы:
Unix и Linux: руководство системного администратора, 4-е издание, 2012,

Э. Немет, Г. Снайдер, Т. Хейн, Б. Уэйли
Для начинающих работать

в UNIX, Ф.И. Торчинский.
Организация UNIX систем и ОС Solaris 9, Торчинский Ф.И., 2-е издание, исправленное, 2016.


Список литературы:Unix и Linux: руководство системного администратора, 4-е издание, 2012, Э. Немет, Г. Снайдер, Т. Хейн, Б.

Слайд 38Благодарю за внимание!
Преподаватель: Солодухин Андрей Геннадьевич
Электронная почта: asoloduhin@kait20.ru


Благодарю за внимание!Преподаватель: Солодухин Андрей ГеннадьевичЭлектронная почта: asoloduhin@kait20.ru

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика