Условное выражение применяется в составной команде две квадратные скобки
([[) для проверки атрибутов файла и сравнения строк. В
словах, расположенных между начальной и конечной парами квадратных скобок
([[ и ]]), разбиение слов и подстановка имен файлов не
выполняются. Каждое выражение образуется из одного или нескольких
унарных или бинарных операторов следующего вида:
-aФайл | Истинно, если указанный файл - это символьная ссылка на существующий файл. |
-bФайл | Истинно, если указанный файл существует и является блочным специальным файлом. |
-cФайл | Истинно, если указанный файл существует и является символьным специальным файлом. |
-dФайл | Истинно, если указанный файл существует и является каталогом. |
-eФайл | Истинно, если указанный файл существует. |
-fФайл | Истинно, если указанный файл существует и является обычным файлом. |
-gФайл | Истинно, если указанный файл существует и задан его бит setgid. |
-hФайл | Истинно, если указанный файл существует и является символьной ссылкой. |
-kФайл | Истинно, если указанный файл существует и задан его бит привязки. |
-nСтрока | Истинно, если длина указанной строки ненулевая. |
-oОпция | Истинно, если указанная опция включена. |
-pФайл | Истинно, если указанный файл существует и является специальным файлом FIFO или конвейером. |
-rФайл | Истинно, если указанный файл существует и может быть прочитан текущим процессом. |
-sФайл | Истинно, если указанный файл существует и не пуст. |
-tДескриптор_файла | Истинно, если файл с указанным дескриптором открыт и связан с терминалом. |
-uФайл | Истинно, если указанный файл существует и задан его бит setuid. |
-wФайл | Истинно, если указанный файл существует и его бит записи равен 1. Однако файл может быть недоступен для записи в файловой системе, в которой разрешено только чтение, даже если результатом проверки будет истина. |
-xФайл | Истинно, если указанный файл существует и установлен флаг execute . Если указанный файл существует и является каталогом, то текущему процессу будет разрешено выполнять в нем поиск. |
-zСтрока | Истинно, если длина указанной строки нулевая. |
-LФайл | Истинно, если указанный файл существует и является символьной ссылкой. |
-OФайл | Истинно, если указанный файл существует и принадлежит фактическому ИД пользователя этого процесса. |
-GФайл | Истинно, если указанный файл существует и его группа соответствует фактическому ИД пользователя этого процесса. |
-SФайл | Истинно, если указанный файл существует и является сокетом. |
Файл1-ntФайл2 | Истинно, если Файл1 существует и является более новым, чем Файл2. |
Файл1-otФайл2 | Истинно, если Файл1 существует и является более старым, чем Файл2. |
Файл1-efФайл2 | Истинно, если Файл1 и Файл2 существуют и ссылаются на один и тот же файл. |
Строка1=Строка2 | Истинно, если Строка1 и Строка2 совпадают. |
Строка1!=Строка2 | Истинно, если Строка1 и Строка2 не совпадают. |
Строка=Шаблон | Истинно, если указанная строка соответствует указанному шаблону. |
Строка!=Шаблон | Истинно, если указанная строка не соответствует указанному шаблону. |
Строка1< Строка2 | Истинно, если Строка1 предшествует Строке2, согласно ASCII-значениям символов. |
Строка1> Строка2 | Истинно, если Строка1 следует за Строкой2, согласно ASCII-значениям символов. |
Выражение1-eqВыражение2 | Истинно, если Выражение1 равно Выражению2. |
Выражение1-neВыражение2 | Истинно, если Выражение1 не равно Выражению2. |
Выражение1-ltВыражение2 | Истинно, если Выражение1 меньше Выражения2. |
Выражение1-gtВыражение2 | Истинно, если Выражение1 больше Выражения2. |
Выражение1-leВыражение2 | Истинно, если Выражение1 меньше или равно Выражению2. |
Выражение1-geВыражение2 | Истинно, если Выражение1 больше или равно Выражению2. |
Примечание: В каждом из предыдущих выражений, если переменная Файл схожа с /dev/fd/n, где n - целое число, то проверка выполняется по отношению к файлу с дескриптором n.
Вы можете образовать составное выражение из этих базовых конструкций с
помощью любых выражений, перечисленных ниже в порядке убывания
приоритета:
(Выражение) | Истинно, если указанное выражение истинно. Служит для объединения выражений в группы. |
! Выражение | Истинно, если указанное выражение ложно. |
Выражение1 && Выражение2 | Истинно, если истинны и Выражение1, и Выражение2. |
Выражение1||Выражение2 | Истинно, если истинно Выражение1 или Выражение2. |