Команда 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 |