Введение в CGI

If


Команда if имеет вид:

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

Сначала выполняется список команд, который стоит после if. Если он завершился успешно, то выполняется список команд после первого then. Значение и логика выполнения других частей этой команды очевидна. Команда начинается символами "if" и должна закончиться символами "fi". Часть команды в квадратных скобках — это необязательные конструкции, которые при необходимости можно опустить.

Рассмотрим в качестве примера проверку метода доступа к скрипту. Для bash это может быть только GET:

#!/usr/freeware/bin/bash echo Content-type: text/plain echo if test $REQUEST_METHOD = "POST"; then echo POST; elif test $REQUEST_METHOD = "GET"; then echo GET; else echo Unknown method $REQUEST_METHOD; fi

В данном случае мы используем сравнение строк (символ "="). Если нужно сравнивать арифметические выражения, то следует использовать другие операции сравнения:

-eq — равенство операндов; -ne — неравенство операндов; -lt — первый операнд меньше второго; -le — первый операнд меньше либо равен второму; -gt — первый операнд больше второго; -ge — первый операнд больше либо равен второму.

Команда test чрезвычайно полезна при работе с файловой системой. Например, при проверке наличия файла и прав на чтение можно использовать следующую комбинацию:

if test -r file.txt; then echo file.txt is readable; fi

Помимо проверки наличия файла и прав можно определять тип файла (-d — каталог, -f — обычный файл и т.п.).



Содержание раздела