Читать интересную книгу Основы программирования в Linux - Мэтью Нейл

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 14 15 16 17 18 19 20 21 22 ... 324

Мы представим команду test на примере одного простейшего условия: проверки наличия файла. Для нее понадобится следующая команда: test -f &lt;<i>имя_файла</i>&gt;, поэтому в сценарии можно написать

if test -f fred.c

then

 ...

fi

To же самое можно записать следующим образом:

if [ -f fred.c ]

then

 ...

fi

Код завершения команды test (выполнено ли условие) определяет, будет ли выполняться условный программный код.

Примечание

Имейте в виду, что вы должны вставлять пробелы между квадратной скобкой [ и проверяемым условием. Это легко усвоить, если запомнить, что вставить символ [ — это все равно, что написать test, а после имени команды вы всегда должны вставлять пробел.

Если вы предпочитаете помещать слово then в той же строке, что и if, нужно добавить точку с запятой для отделения команды test от then:

if [ -f fred.c ]; then

 ...

fi

Варианты условий, которые вы можете применять в команде test, делятся на три типа: строковые сравнения, числовые сравнения и проверка файловых флагов (file conditionals). Эти типы условий описаны в табл. 2.4.

Таблица 2.4

Варианты условий Результат Сравнения строк <i>Строка1 = Строка2</i> True (истина), если строки одинаковы <i>Строка1 != Строка2</i> True (истина), если строки разные -n<i> Строка</i> True (истина), если Строка не null -z <i>Строка</i> True (истина), если <i>Строка</i> null (пустая строка) Сравнения чисел <i>Выражение1</i> -eq <i>Выражение2</i> True (истина), если выражения равны <i>Выражение1</i> -ne<i> Выражение2</i> True (истина), если выражения не равны <i>Выражение1</i> -gt Вы<i>ражение2</i> True (истина), если Выражение1 больше, чем Выражение2 <i>Выражение1</i> -ge <i>Выражение2</i> True (истина), если Выражение1 не меньше Выражение2 <i>Выражение1</i> -lt <i>Выражение2</i> True (истина), если Выражение1 меньше, чем Выражение2 <i>Выражение1</i> -lе<i> Выражение2</i> True (истина), если Выражение1 не больше Выражение2 ! <i>Выражение</i> True (истина), если Выражение ложно, и наоборот Файловый флаг -d <i>файл</i> True (истина), если файл — каталог -е<i> файл</i> True (истина), если файл существует. Исторически, опция -e не была переносима на другие платформы, поэтому обычно применяется -f -f <i>файл</i> True (истина), если файл — обычный файл -g <i>файл</i> True (истина), если для файла установлен бит set-group-id -r<i> файл</i> True (истина), если <i>файл</i> доступен для чтения -s <i>файл</i> True (истина), если <i>файл</i> ненулевого размера -u<i> файл</i> True (истина), если для файла установлен бит set-user-id -v <i>файл</i> True (истина), если файл доступен для записи -х<i> файл</i> True (истина), если <i>файл </i>— исполняемый файл
1 ... 14 15 16 17 18 19 20 21 22 ... 324
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Основы программирования в Linux - Мэтью Нейл.

Оставить комментарий