Bsdadmin.ru

Записки администратора FreeBSD

Путь на сайте

Домашняя Mans FreeBSD по-русски test - утилита проверки условий

test - утилита проверки условий

НАЗВАНИЕ
     test,  - утилита проверки условий
СИНТАКСИС
     test выражение
     [ выражение ]

ОПИСАНИЕ
     Утилита test проверяет условие, и если оно выполняется, возвращает 0
     (истина).  В противном случае возвращается 1 (ложь).  Если условие не
     задано, test также возвратит 1 (ложь).Все операторы и флаги представляют собой отдельные аргументы к данной утилите.

      Для создания выражений используются следующие примитивы:
      -b файл        Истина если файл существует и является специальным файлом
                   блочного устройства.

     -c файл        Истина если файл существует и является специальным файлом
                   посимвольного устройства.
      -d файл        Истина если файл существует и является каталогом.

      -e файл        Истина если файл существует (независимо от типа).
     -f файл        Истина если файл существует и является обычным файлом.

      -g файл        Истина если файл существует и имеет установленный флаг
                   ``установить идентификатор группы'' (set group ID).
      -h файл        Истина если файл существует и является символической ссыл-
                   кой.  Этот оператор сохранён для совместимости с предыду-
                   щими версиями программы.  Не стоит полагаться на его нали-
                   чие, вместо этого используйте -L.

     -k файл        Истина если файл существует и имеет установленный бит
                   sticky.
      -n строка      Истина если длина строки строка ненулевая.

     -p файл        Истина если файл является именованным каналом (FIFO).
     -r файл        Истина если файл существует и доступен на чтение.

     -s файл        Истина если файл существует и его длина больше нуля.
     -t дескриптор_файла
                   Истина если файл, дескриптор которого задаётся аргументом
                   дескриптор_файла, открыт и связан с терминалом.

     -u файл        Истина если файл существует и имеет установленный флаг
                   ``установить идентификатор польльзователя'' (set user ID).
      -w файл        Истина если файл существует и доступен на запись.  Истина
                   лишь означает, что флаг записи включен.  В файловой системе
                   доступной только на чтение файл не является записываемым,
                   даже если эта проверка показывает обратное.

      -x файл        Истина если файл существует и является исполняемым.  Истина
                   лишь означает, что флаг запуска включен.  Если файл явля-
                   ется каталогом, истина означает, что внутри него возможно
                   производить поиск.
     -z строка      Истина если длина аргумента строка нулевая.

      -L файл        Истина если файл существует и является символической ссылкой.
      -O файл        Истина если файл существует и его владелец совпадает с
                   идентификатором эффективного пользователя данного процесса.

     -G файл        Истина если файл существует и его группа совпадает с иден-
                   тификатором эффективной группы данного процесса.
      -S файл        Истина если файл существует и является сокетом.

     файл1 -nt файл2
                   Истина если файл1 существует и новее файла файл2.
     файл1 -ot файл2
                   Истина если файл1 существует и старее файла файл2.

     файл1 -ef файл2
                   Истина если файлы файл1 и файл2 существуют и ссылаются на
                   один и тот же файл.
     строка         Истина если строка не является пустой.

     s1 = s2        Истина если строки s1 и s2 идентичны.
      s1 != s2       Истина если строки s1 и s2 отличаются.

     s1 < s2        Истина если строка s1 предшествует строке s2 основываясь на
                   двоичном значении их символов.
     s1 > s2        Истина если строка s1 следует за s2 основываясь на двоичном
                   значении их символов.

      n1 -eq n2      Истина если целые числа n1 и n2 алгебраически равны.
     n1 -ne n2      Истина если целые числа n1 и n2 алгебраически не равны.

     n1 -gt n2      Истина если целое n1 алгебраически больше целого n2.
     n1 -ge n2      Истина если целое n1 алгебраически больше либо равно целому  n2.

      n1 -lt n2      Истина если целое n1 алгебраически меньше целого n2.
      n1 -le n2      Истина если целое n1 алгебраически меньше либо равно целому n2.

     Если файл является символической ссылкой, то test полностью разыменовы-
     вает её и далее вычисляет выражение уже с конечным файлом, за исключением
     примитив -h и -L.     Примитивы могут комбинироваться со следующими операторами:

      ! выражение    Истина если выражение ложно.

     выражение1 -a выражение2
                   Истина если оба выражение1 и выражение2 истинны.

     выражение1 -o выражение2
                   Истина если хотя бы одно из выражений выражение1 и
                   выражение2 истинно.

     (выражение)    Истина если выражение истинно.

     Оператор -a имеет более высокий приоритет, чем оператор -o
    Некоторые командные оболочки имеют встроенную команду test с похожей либо
     идентичной функциональностью.  Обратитесь к странице справочника
     builtin(1).

НЕОДНОЗНАЧНОСТЬ ГРАММАТИКИ
     Грамматика утилиты test по своей сути неоднозначна.  Чтобы обеспечить
     определённую степень непротиворечивости, случаи, рассматриваемые стандар-
     том IEEE Std 1003.2 (``POSIX.2'') в разделе D11.2/4.62.4, вычисляются
     строго в соответствии с правилами, указанными в документе стандарта.  Все
     остальные случаи ограничены неоднозначностями в семантике команды.

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
     Утилита test возвращает одно из следующих значений:

     0       Выражение истинно.
     1       Выражение ложно или отсутствует.
     >1      Произошла ошибка.

СМОТРИ ТАКЖЕ
     builtin(1), expr(1), sh(1), symlink(7)

СТАНДАРТЫ
     Утилита test реализует расширение спецификации IEEE Std 1003.2
     (``POSIX.2'').

ПРОБЛЕМЫ
     В случае использования -a и -o, всегда вычисляются обе части выражения, в
     отличие от логических операторов sh(1).  Например, следующей командой
     будет проверяться возможность записи в файл, несмотря на то, что первое
     выражение является ложным.  Результатом этого будет ненужное обращение к
     файловой системе:

           [ -z abc -a -w файл ]

Домашняя Mans FreeBSD по-русски test - утилита проверки условий