Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Пользователю -> Костромин В.А. -> "Самоучитель Linux для пользователя" -> 60

Самоучитель Linux для пользователя - Костромин В.А.

Костромин В.А. Самоучитель Linux для пользователя — СПб.: БХВ Петербург, 2003. — 672 c.
ISBN 5-94157-183-6
Скачать (прямая ссылка): samouchiteldlyapolz2003.djvu
Предыдущая << 1 .. 54 55 56 57 58 59 < 60 > 61 62 63 64 65 66 .. 274 >> Следующая


Полный формат команды if имеет вид:

if list then list [ elif list then list 1 . . [ else list ] fi

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

В качестве выражения, которое стоит сразу после if или elif, часто используется команда test, которая может обозначаться также квадратными скобками [ ]. Команда test выполняет вычисление некоторого выражения и возвращает значение 0, если выражение истинно, и 1 в противном случае. Выражение передается программе test как аргумент. Вместо того, чтобы писать

test expression

можно заключить выражение в квадратные скобки:

[ expression ] .

Заметьте, что test и [ — это два имени одной и той же программы, а не какое-то магическое преобразование, выполняемое оболочкой bash (только синтаксис [ требует, чтобы была поставлена закрывающая скобка). Заметьте также, что вместо test в конструкции if может быть использована любая программа.

В заключение приведем пример использования оператора if:

if [ -е textinode2.htm ] ; then Is textmodu*

else

pwd

Об операторе test (ш [...]) надо бы поговорить особо. 138_

і Самоучитель Linux для пользователя

5.8.2. Оператор fest и условные выражения

Условные выражения, используемые в операторе test, строятся на основе проверки файг овых атрибутов, сравнения строк и обычных арифметических сравнений. Сложные выражения строятся из следующих унарных или бинарных операї їй ("элементарных кирпичиков").

П -a file

Верно, если файл с именем file существует.

? -ь file

Верно, если file существует и является специальным файлом блочного устройства, п -с file

Верно, если file существует и является специальным файлом символьного устройства.

П -d file

Верно, если file существует и является каталогом. П -е file

Верно, если файл с именем file существует.

? -f file

Верно, еслг файл с именем fiDe существует и является обычным файлом. П -g file

Верно, если файл с именем file существует и для него установлен бит смены группы.

П -h file ИЛИ -L file

Верно, если файл с именем file существует и является символической ссылкой.

П -k file

Верно, если файл с именем file существует и для него установлен "sticky bit". П -р file

Верно, если файл с именем file существует и является именованным каналом (FIFO).

П -г file

Верно, если файл с именем file существует и для него установлено право на чтение.

П -S file

Верно, если файл с именем file существует и его размер больше нуля. Гпава 5. Оболочка bash.

139

П -t fd

Верно, если дескриптор файла fd открыт и указывает на терминал. П -и file

Верно, если файл с именем file существует и для него установлен бит смены пользователя.

П -W file

Верно, если файл с именем file существует и для него установлено право на запись.

П -X file

Верно, если файл с именем file существует и является исполняемым. П -О file

Верно, если файл с именем file существует и его владельцем является пользователь, на которого указывает эффективный идентификатор пользователя.

П -G file

Верно, если файл с именем file существует и принадлежит группе, определяемой эффективным идентификатором группы. П -S file

Верно, если файл с именем file существует и является сокетом. П -N file

Верно, если файл с именем file существует и изменялся с тех пор, как был последний раз прочитан. П filel -nt file 2

Верно, если файл filel имеет более позднее время модификации, чем file 2. П filel -ot file 2

Верно, если файл filel старше, чем file 2. П filel ef file2

Верно, если файлы filel и file2 имеют одинаковые номера устройств и индексных дескрипторов (inode).

П -о optiame

Верно, если задействована опция оболочки optname. Пояснения см. на странице man bash. П -Z string

Верно, если длина строки равна нулю. 140

П -n string

Верно, если длина строки не равна нулю.

П stringl == string2

Верно, если строки совпадают. Вместо == может использоваться =.

П stringl !== string2

Верно, если строки не совпадают.

П stringl < string2

Верно, если строка stringl лексикографически предшествует строке string2 (для текущей локали)

П stringl > Stn пд2

Верно, если строка stringl лексикографически стоит после строки string2 (для текущей локали).

П argl OP аг с 2

Здесь OP — это одна из операций арифметического сравнения: -eq (равно), -пє (не равно), -It (меньше чем), -Ie (меньше или равно), -gt (больше), -(je (больше или равно). В качестве аргументов могут использоваться положительные или отрицательные целые числа.

Из этих элементарных условных выражений можно строить сколь угодно сложные с помощью обычных логических операций ОТРИЦАНИЯ, И и ИЛИ.

П ! (expression)

Булевский оператор отрицания.

П expression -a expression2

Булевский оператор AND (И). Верен, если верны оба выражения.

П expression., -о expression2

Булевский оператор OR (ИЛИ). Верен, если верно любое из двух выражений.

Такие же условные выражения используются и в операторах while и until, которые мы рассмотрим чуть ниже.
Предыдущая << 1 .. 54 55 56 57 58 59 < 60 > 61 62 63 64 65 66 .. 274 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100