Команда 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 - отрицание