Skip to main content

Команда test [ ]

Команда test проверяет выполнение некоторого условия. С использованием этой (встроенной) команды формируются операторы выбора и цикла языка shell.

Есть два возможных формата команды:

test условие

или

[   условие   ]

Мы будем пользоваться вторым вариантом, т.е. вместо того, чтобы писать перед условием слово test, будем заключать условие в скобки. Между скобками и содержащимся в них условием обязательно должны быть пробелы.

Условия проверки файлов:

-f   имя  - файл имя является обычным (регулярным)файлом;

-d   имя   - файл имя - каталог;

-L   имя   - файл имя - символьная ссылка;

-r   имя   - имеется разрешение на чтение файла имя;

-w   имя   - имеется разрешение на запись в файл имя;

-x   имя   - имеет разрешение на выполнение файла имя;

-s   имя   - файл имя не пустой.

Условия проверки строк:

str1   =   str2 - строки "str1" и "str2" совпадают;

str1   !=   str2 - строки "str1" и "str2" не совпадают;

-n   str1   - строка "str1" существует (непустая);

-z   str1  - строка "str1" не существует (пустая, имеет нулевую длину).

Условия сравнения целых чисел:

x -eq y     - x = y,

x -ne y     - x не равно y,

x -gt y     - x > y,

x -ge y     - x >= y,

x -lt y     - x < y,

x -le y     - x <= y.

Объединение и отрицание при проверке:

t1   -a   t2 - логическое И

t1   -o   t2 - логическое ИЛИ

!   t1 - отрицание