УСЛОВНЫЕ ВЫРАЖЕНИЯ
Условные выражения используются составной командой [[ и встроенными командами и [ для проверки атрибутов файла и выполнения строковых и арифметических сравнений. Выражения формируются из следующих унарных и бинарных элементарных условий. Если любой из аргументов файл в одном из условий имеет вид /dev/fd/n, проверяется файл с дескриптором n.
-a файл
Истинно, если файл существует.
-b файл
Истинно, если файл существует и являтся специальным блочным устройством.
-c файл
Истинно, если файл существует и является специальным символьным устройством.
-d файл
Истинно, если файл существует и является каталогом.
-e файл
Истинно, если файл существует
-f файл
Истинно, если файл существует и является обычным файлом.
-g файл
Истинно, если файл существует и имеет установленный бит SGID.
-h файл
Истинно, если файл существует и является символической связью.
-k файл
Истинно, если файл существует и имеет установленный "клейкий" бит.
-p файл
Истинно, если файл существует и является именованным каналом (FIFO).
-r файл
Истинно, если файл существует и доступен для чтения.
-s файл
Истинно, если файл существует и имеет ненулевой размер.
-t fd
Истинно, если дескриптор файла fd открыт и связан с терминалом.
-u файл
Истинно, если файл существует и имеет установленный бит SUID.
-w файл
Истинно, если файл существует и доступен для записи.
-x файл
Истинно, если файл существует и является выполняемым.
-O файл
Истинно, если файл существует и принадлежит пользователю, задаваемому текущим эффективным идентификатором пользователя.
-G файл
Истинно, если файл существует и принадлежит группе, задаваемой текущим эффективным идентификатором группы.
-L файл
Истинно, если файл существует и является символической связью.
-S файл
Истинно, если файл существует и является сокетом.
-N файл
Истинно, если файл существует и был изменен с момента последнего чтения.
файл1 -nt файл2
Истинно, если файл1 новее (в соответствии с датой изменения), чем файл2.
файл1 -ot файл2
Истинно, если файл1 старее, чем файл2.
файл1 -ef файл2
Истинно, если файл1 и файл2 находятся на одном устройстве и имеют одинаковые номера индексных дескрипторов.
-o опция
Истинно, если установлена указанная опция командного интерпретатора. Список опций см. далее в описании опции встроенной команды .
-z строка
Истинно, если длина строки - ноль (т.е. строка - пустая).
-n строка
строка
Истинно, если длина строки - не ноль.
строка1 == строка2
Истинно, если строки совпадают. Вместо == можно использовать просто =.
строка1 != строка2
Истинно, если строки не совпадают.
строка1 < строка2
Истинно, если строка1 в текущей локали при лексикографическом упорядочении предшествует строке2.
строка1 > строка2
Истинно, если строка1 в текущей локали при лексикографическом упорядочении идет после строки2.
arg1 OP arg2
Оператор OP - один из следующих: -eq, -ne, -lt, -le, -gt или -ge. Эти бинарные арифметические операторы возвращают истину, если arg1 равен, не равен, меньше, меньше или равен,больше, больше или равен arg2, соответственно. Аргументы arg1 и arg2 могут быть любыми целыми числами.