Команда test
Команда test применяется для проверки условия. Формат вызова:
test <выражение>
или
[ <выражение> ]
Команда test вычисляет <выражение> и, если его значение - истина, возвращает код завершения 0 (true); иначе - ненулевое значение (false). Ненулевой код завершения возвращается и если опущены аргументы. <Выражение> может состоять из следующих примитивов:
-r файл | - истина, если файл существует и доступен для чтения |
-w файл | - истина, если файл существует и доступен для записи |
-x файл | - истина, если файл существует и является выполняемым |
-f файл | - истина, если файл существует и является обычным файлом |
-d файл | - истина, если файл существует и является директорией |
-c файл | - истина, если файл существует и является специальным символьно-ориентированным файлом |
-b файл | - истина, если файл существует и является специальным блок-ориентированным файлом |
-p файл | - истина, если файл существует и является именованным каналом (pipe) |
-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 |