Unix Man (Справочное руководство)

         

TEST(1)


TEST(1)

НАЗВАНИЕ


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

СИНТАКСИС

test выражение [ выражение ]

ОПИСАНИЕ


Команда test применяется для проверки условия. Она вычисляет выражение и, если его значение - истина, возвращает код завершения 0; иначе - ненулевое значение. Ненулевой код возвращается и в случае, когда выражение отсутствует. При проверке прав доступа используется действующий идентификатор пользователя.

Знаки операций, флаги и скобки (см. выше второй способ записи команды test) должны быть отдельными аргументами в командной строке; обычно их разделяют пробелами.

Выражение может состоять из следующих примитивов:

-r файл -w файл -x файл -f файл -d файл -c файл -b файл -p файл -u файл -g файл -k файл -s файл -t [дескриптор_файла] -z s1-n s1s1 = s2 s1 != s2 s1 n1 -eq n2 ( выражение )
Истина, если файл существует и доступен для чтения.
Истина, если файл существует и доступен для записи.
Истина, если файл существует и является выполняемым.
Истина, если файл существует и является обычным файлом.
Истина, если файл существует и является каталогом.
Истина, если файл существует и является специальным символьным файлом.
Истина, если файл существует и является специальным блочным файлом.
Истина, если файл существует и является именованным каналом.
Истина, если файл существует и его режим содержит бит переустановки идентификатора пользователя.
Истина, если файл существует и его режим содержит бит переустановки идентификатора группы.
Истина, если файл существует и его режим содержит бит навязчивости.
Истина, если файл существует и имеет ненулевой размер.
Истина, если открытый файл с указанным дескриптором (по умолчанию 1) существует и ассоциирован с терминалом.
Истина, если длина цепочки s1 нулевая.
Истина, если длина цепочки s1 ненулевая.
Истина, если цепочки s1 и s2 равны.
Истина, если цепочки s1 и s2 не равны.
Истина, если s1 - непустая цепочка.
Истина, если целые числа n1 и n2 алгебраически равны. На месте -eq могут быть также операции сравнения -ne (не равно), -gt (больше), -ge (больше или равно), -lt (меньше), -le (меньше или равно).
Истина, если истинно заключенное в скобки выражение (скобки должны быть экранированы от интерпретации shell'ом).
<
Примитивы могут комбинироваться с помощью следующих операций (в порядке уменьшения приоритета): ! -a -o
Унарная операция отрицания.
Логическое И.
Логическое ИЛИ.

СМ. ТАКЖЕ



, .

ПРЕДОСТЕРЕЖЕНИЯ



Операции = и != имеют больший приоритет, чем операции от -r до -n; кроме того, операциям сравнения нужны аргументы. Следовательно, они не могут быть использованы с операциями от -r до -n.

Если у операций от -r до -n указано более одного аргумента, то обрабатывается только первый из них (остальные игнорируются), если только второй аргумент не есть -a или -o.

СЮРПРИЗЫ



Если посредством операций -r, -w или -x Вы проверяете файл, владельцем которого являетесь, но в режиме этого файла не установлен соответствующий бит для пользователя, код завершения будет ненулевым (ложь), даже если у Вас есть права на файл как у члена группы или прочего пользователя. Для суперпользователя код завершения будет правильным.


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