русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Условное исполнение команд


Дата добавления: 2015-07-09; просмотров: 1342; Нарушение авторских прав


Операторы условного исполнения команд && и || могут быть применены для управления потоком исполнения команд. Они позволяют исполнять команды в зависимости от успешности выполнения предыдущих команд.

Если оператор && установлен между двумя командами, то вторая из них будет исполнена только в случае успеха предыдущей (пример 10.24).

 

Пример 10.24. Выполнение команды в случае успеха предыдущей команды

 

$ ls /tmp &> /dev/null && cd /tmp

$ pwd

/tmp

 

В примере 10.24 первая команда проверяет наличие каталога, переход в ко- торый осуществляет вторая команда cd /tmp при условии успешного испол- нения первой.

Более изящный вариант выполнения этой же задачи заключается в использо- вании команды test для проверки существования целевого каталога (при- мер 10.25).

 

Пример 10.25. Использование команды test с условными операторами

 

$ [ -d /tmp ] && cd /tmp

$ pwd

/tmp

 

Команда test в примере 10.25 проверяет существование каталога.

Если необходимо выполнять команду в случае неудачного завершения работы другой команды, удобно применять оператор ||. Например, требуется перейти в каталог d1. В случае отсутствия этот каталог необходимо создать и перейти в него. Эту задачу можно решить следующим образом (пример 10.26).


 

Пример 10.26. Выполнение команды при неудаче предыдущей команды

 

$ [ -d d1 ] || mkdir d1 ; cd d1

$ pwd

/tmp/d1

 

Если каталог отсутствует (пример 10.26), то он создается.

Оболочка предоставляет также специальную команду if, которая позволяет управлять последовательностью исполнения целых блоков команд. В качест- ве примера предположим, что требуется обеспечить выход из некоторого сценария с ошибкой, если в командной строке установлено отличное от еди- ницы число аргументов командной строки. При этом команда должна сооб- щать об ошибке и выдавать подсказку о правильном варианте ее использова- ния (пример 10.27).



 

Пример 10.27. Команда if

 

#!/bin/bash

if [ $# -ne 1 ] then

cat <<- ERR

Недостаточно аргументов. Использование:

if.sh file

Аргумент file должен быть обычным файлом.


 

fi

ls -l $1


ERR

exit 1


 

Команда if исполняет блок команд после команды then, только в случае по- лучения нулевого кода возврата команды, указанной в качестве ее аргумента. В данном случае аргумент команды if — это команда test, которая проверя- ет количество аргументов сценария. Если количество аргументов не равно единице, то выполняется блок операторов после then до команды fi, закан- чивающей if.

Конструкция cat <<- ERR — это "here document". Она позволяет указывать целый блок данных непосредственно в теле сценария, передавая его в данном случае в стандартный поток ввода команде cat для вывода на экран. Блок


 

данных ограничен строкой ERR. В этом примере используется оператор <<-

вместо << для игнорирования табуляций перед блоком данных. Результат — в примере 10.28.

 

Пример 10.28. Результаты работы программы с командой if

 

$ ./if.sh

Недостаточно аргументов. Использование:

if.sh file

Аргумент file должен быть обычным файлом.

$ ./if.sh if.sh

-rwxr--r-- 1 user1 users 172 Oct 8 19:34 if.sh

 

Команда if допускает использование команды elif для выполнения допол- нительной проверки (пример 10.29).

 

Пример 10.29. Команда elif

 

#!/bin/bash

if [ $# -ne 1 ] then

cat <<- ERR

Недостаточно аргументов. Использование:

if.sh file

Аргумент file должен быть обычным файлом.

ERR

exit 1 elif [ ! -f $1 ] then


 

 

fi

ls -l $1


echo -n 'Тип файла ' file $1

exit 1


 

Если аргументом задан специальный файл, то выводится его тип (при-

мер 10.30).


 

Пример 10.30. Проверка работы сценария с elif

 

$ ./if.sh .

Тип файла .: directory

 

В команде if можно также использовать else для указания блока операто- ров, которые должны исполняться в случае, если предыдущие проверки не закончились успехом (пример 10.31).

 

Пример 10.31. Команда else

 

#!/bin/bash

 

 

if [ $# -ne 1 ] then

cat <<- ERR

Недостаточно аргументов. Использование:

if.sh file

Аргумент file должен быть обычным файлом.

ERR

exit 1 elif [ ! -f $1 ] then


 

 

else fi


echo -n 'Тип файла ' file $1

exit 1 ls -l $1




<== предыдущая лекция | следующая лекция ==>
ЗАДАНИЯ | ЗАДАНИЯ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.419 сек.