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 Вы проверяете файл, владельцем которого являетесь, но в режиме этого файла не установлен соответствующий бит для пользовате- ля, код завершения будет ненулевым (ложь), даже если у Вас есть права на файл как у члена группы или прочего пользователя. Для суперпользователя код завершения бу- дет правильным.@