Условные выражения в bash

Условные выражения используют команды соединения [[ и test, и [ встроенные команды для проверки файловых атрибутов, и выполнения строковых и арифметических сравнений. Выражения формируются из следующих, унарных или первичных бинаных. Если любой файловый аргумент один из primaries имеет вид /dev/fd/n то файловый дескриптор «n» проверяется. Если файловый аргумент одного из primaries является одним из /dev/stdin, /dev/stdout, или /dev/stderr файловый дескриптор 0,1, или 2 соответственно проверяются.

Если не указано иное, primaries которые работают с файлами по символичным ссылкам, действуют на цель ссылки, а не на саму ссылку.

При использовании с [[, < и > операторами сортировки лексикографически используются текущей локалью. Тестовая команда сортировки использует ASCII упорядочения.

-a file Истинно, если файл существует.

-b file Истинно, если файл существует и является специальным файлом блочного устройства.

-c file Истинно, если файл существует и является специальным файлом символьного устройства.

-d file Истинно, если файл существует и является директорией.

-e file Истинно, если файл существует

-f file Истинно, если файл существует и является обычным файлом.

-g file Истинно, если файл существует и для него установлен идентификатор группы.

-h file Истинно, если файл существует и является символической ссылкой.

-k file Истинно, если файл существует и для него установлен ‘‘sticky» bit.

-p file Истинно, если файл существует и является именованным каналом (FIFO).

-r file Истинно, если файл существует и доступен для чтения.

-s file Истинно, если файл существует и имеет размер больше нуля.

-t fd Истинно если дескриптор файла fd открыт и указыает на терминал.

-u file Истинно если файл существует и для него установлен бит смены пользователя.

-w file Истинно, если файл существует и доступен для записи.

-x file Истинно, если файл существует и является исполняемым.

-G file Истинно если файл существует и его владельцем является пользователь на которого указывает эффективный идентификатор пользователя.

-L file Истинно, если файл существует и является символической ссылкой.

-N file Истинно, если файл существует и был изменен с момента последнего чтения.

-O file Истинно, если файл существует и принадлежит текущему эффективному пользователю.

-S file Истинно, если файл существует и является сокетом.

file1 -ef file2 Истинно если file1 и file2 относятся к тому же устройству и одинаковые (inode) индексных дескрипторов.

file1 -nt file2 Истинно если file1 новее(по дате изменения) чем file2, или если file1 существует, а file2 нет.

file1 -ot file2 Истинно если file1 старше чем file2 или если file2 существует, а file1 нет.

-o optname Истинно если задана опция shell optname.

-v varname Истинно если shell переменная varname установлена(если ей было присвоено значение).

-z string Истинно, если длина строки равна нулю.

string

-n string Истинно, если длина строки не равна нулю.

string1 == string2

string1 = string2 Истинно, если строки равны. «=» Следует использовать с командой test для POSIX соответствия.

string1 != string2 Истинно, если строки не равны.

string1 < string2 Истинно если string1 лексикографически предшествует string2.

string1 > string2 Истинно если string1 лексикографически стоит после string2.

arg1 OP arg2 OP является одним из -eq, -ne, -lt, -le, -gt, или -ge. Эти арифметические бинарные операторы возвращают true если arg1 равно, не равно, меньше, меньше или равно, больше, чем, или больше чем или равно arg2 соответственно. Arg1 и arg2 могут быть положительными или отрицательными числами.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *