Bash операторы сравнения

Сравнение целых чисел

-eq

равно

if [ «$a» -eq «$b» ]

-ne
не равно

if [ «$a» -ne «$b» ]

-gt
больше

if [ «$a» -gt «$b» ]

-ge
больше или равно

if [ «$a» -ge «$b» ]

-lt
меньше

if [ «$a» -lt «$b» ]

-le
меньше или равно

if [ «$a» -le «$b» ]

<
меньше (внутри двойных круглых скобок )

((«$a» < «$b»))

<=
меньше или равно (внутри двойных круглых скобок)

((«$a» <= «$b»))

>
больше (внутри двойных круглых скобок)

((«$a» > «$b»))

=
больше или равно (внутри двойных круглых скобок)

((«$a» >= «$b»))

Сравнение строк

=

равно

if [ «$a» = «$b» ]

==
равно

if [ «$a» == «$b» ]

Синоним оператора =.

[[ $a == z* ]] # истина, если $a начинается с символа «z» (сравнение по шаблону)
[[ $a == «z» ]] # истина, если $a равна z

[ $a == z* ] # имеют место подстановка имен файлов и разбиение на слова
[ «$a» == «z» ] # истина, если $a равна z

!=
не равно

if [ «$a» != «$b» ]

Этот оператор используется при поиске по шаблону внутри [[ … ]].

<
меньше, в смысле величины ASCII-кодов

if [[ «$a» < «$b» ]]

if [ «$a» \< «$b» ]

Обратите внимание! Символ «<» необходимо экранировать внутри [ ].

>
больше, в смысле величины ASCII-кодов

if [[ «$a» > «$b» ]]

if [ «$a» > «$b» ]

Обратите внимание! Символ «>» необходимо экранировать внутри [ ].

-z
строка «пустая», т.е. имеет нулевую длину

-n
строка не «пустая».

Логические операции:

! – отрицание;
–a или && – логическое И;
–o или || – логическое ИЛИ.

Элементарные условные выражения для файлов:

-e — файл существует;
-f — обычный файл (не каталог и не файл устройства);
-s — ненулевой размер файла;
-d — файл является каталогом;
-b — файл является блочным устройством (floppy, cdrom и т.п.);
-c — файл является символьным устройством (клавиатура, модем, звуковая карта и т.п.);
-p — файл является каналом;
-h — файл является символической ссылкой;
-L — файл является символической ссылкой;
-S — файл является сокетом;
-t — файл связан с терминальным устройством;
-r — файл доступен для чтения (пользователю, запустившему сценарий);
-w — файл доступен для записи (пользователю, запустившему сценарий);
-x — файл доступен для исполнения (пользователю, запустившему сценарий);
-g — (sgid) флаг для файла или каталога установлен;
-u — (suid) флаг для файла установлен;
-k — флаг sticky bit установлен;
-O — вы являетесь владельцем файла (пользователь запустивший сценарий);
-G — вы принадлежите к той же группе, что и файл (пользователь запустивший сценарий);
-N — файл был модифицирован с момента последнего чтения;
file1 -nt file2 – file1 более новый, чем file2;
file1 -ot file2 – file1 более старый, чем file2;
file1 -ef file2 – file1 и file2 являются «жесткими» ссылками на один и тот же файл.

Элементарные условные выражение для сравнения строк:

-z str – длина строки str равна 0;
-n str – длина строки str не равно 0;
str1 == str2 или str1 = str2 – строки совпадают;
str1 !== str2 или str1 != str2 – строки не совпадают;
str1 < str2 – str1 предшествует str2 в лексикографическом порядке; str1 > str2 – str1 следует за str2 в лексикографическом порядке.

Pinterest