TEST(1) TEST(1)
НАЗВАНИЕ
test - проверка условия
СИНТАКСИС
test выражение
[ выражение ]
ОПИСАНИЕ
Команда test применяется для проверки условия. Она вы-
числяет выражение и, если его значение - истина, возв-
ращает код завершения 0; иначе - ненулевое значение.
Ненулевой код возвращается и в случае, когда выражение
отсутствует. При проверке прав доступа используется
действующий идентификатор пользователя.
Знаки операций, флаги и скобки (см. выше второй способ
записи команды test) должны быть отдельными аргументами
в командной строке; обычно их разделяют пробелами.
Выражение может состоять из следующих примитивов:
-r файл
Истина, если файл существует и доступен для чте-
ния.
-w файл
Истина, если файл существует и доступен для запи-
си.
-x файл
Истина, если файл существует и является выполняе-
мым.
-f файл
Истина, если файл существует и является обычным
файлом.
-d файл
Истина, если файл существует и является каталогом.
-c файл
Истина, если файл существует и является специаль-
ным символьным файлом.
-b файл
Истина, если файл существует и является специаль-
ным блочным файлом.
-p файл
Истина, если файл существует и является именован-
ным каналом.
-u файл
Истина, если файл существует и его режим содержит
бит переустановки идентификатора пользователя.
-g файл
Истина, если файл существует и его режим содержит
бит переустановки идентификатора группы.
-k файл
Истина, если файл существует и его режим содержит
бит навязчивости.
-s файл
Истина, если файл существует и имеет ненулевой
размер.
-t [дескриптор_файла]
Истина, если открытый файл с указанным дескрипто-
ром (по умолчанию 1) существует и ассоциирован с
терминалом.
-z s1 Истина, если длина цепочки s1 нулевая.
-n s1 Истина, если длина цепочки s1 ненулевая.
s1 = s2
Истина, если цепочки s1 и s2 равны.
s1 != s2
Истина, если цепочки s1 и s2 не равны.
s1 Истина, если s1 - непустая цепочка.
n1 -eq n2
Истина, если целые числа n1 и n2 алгебраически
равны. На месте -eq могут быть также операции
сравнения -ne (не равно), -gt (больше), -ge (боль-
ше или равно), -lt (меньше), -le (меньше или рав-
но).
( выражение )
Истина, если истинно заключенное в скобки выраже-
ние (скобки должны быть экранированы от интерпре-
тации shell'ом).
Примитивы могут комбинироваться с помощью следующих
операций (в порядке уменьшения приоритета):
! Унарная операция отрицания.
-a Логическое И.
-o Логическое ИЛИ.
СМ. ТАКЖЕ
find(1), sh(1).
ПРЕДОСТЕРЕЖЕНИЯ
Операции = и != имеют больший приоритет, чем операции
от -r до -n; кроме того, операциям сравнения нужны ар-
гументы. Следовательно, они не могут быть использованы
с операциями от -r до -n.
Если у операций от -r до -n указано более одного аргу-
мента, то обрабатывается только первый из них (осталь-
ные игнорируются), если только второй аргумент не есть
-a или -o.
СЮРПРИЗЫ
Если посредством операций -r, -w или -x Вы проверяете
файл, владельцем которого являетесь, но в режиме этого
файла не установлен соответствующий бит для пользовате-
ля, код завершения будет ненулевым (ложь), даже если у
Вас есть права на файл как у члена группы или прочего
пользователя. Для суперпользователя код завершения бу-
дет правильным.
|