Операторы bash в Linux
Применимо к основным командным интерпретаторам — sh
, bash
, csh
, tcsh
и некоторым другим.
Буквенное сравнение
Оператор | Описание | Пример |
---|---|---|
-eq |
Равно [ $x -eq $y ]
Для результат true необходимо, чтобы x был равен y
|
[ 1 -eq 2 ] — false
[ 3 -eq 3 ] — true
|
-ne |
Не равно [ $x -ne $y ]
Оператор обратный -eq
|
[ 1 -ne 2 ] — true
[ 3 -ne 3 ] — false
|
-gt |
Больше [ $x -gt $y ]
То есть проверяет больше ли x чем y
|
[ 1 -gt 2 ] — false
[ 3 -gt 3 ] — false
[ 5 -gt 4 ] — true
|
-lt |
Меньше [ $x -lt $y ]
Проверяет, что число в левой части ( x ) меньше числа в правой (y )
|
[ 1 -lt 2 ] — true
[ 3 -lt 3 ] — false
[ 5 -lt 4 ] — false
|
-ge |
Больше или равно [ $x -ge $y ] |
[ 1 -ge 2 ] — false
[ 3 -ge 3 ] — true
[ 5 -ge 4 ] — true
|
-le |
Меньше или равно [ $x -le $y ] |
[ 1 -le 2 ] — true
[ 3 -le 3 ] — true
[ 5 -le 4 ] — false
|
-z |
Проверка на нулевой размер [ -z $b ]
Оператор проверяет, является ли строка b с нулевым размером
|
[ -z 'linux' ] — false
[ -z '' ] — true
|
-n |
Проверка на ненулевой размер [ -n $b ]
Оператор обратный -z
|
[ -n 'linux' ] — true
[ -n '' ] — false
|
Проверка на пустоту [ $b ]
Оператор проверяет, является ли строка b не пустой
|
[ 'linux' ] — true
[ '' ] — false
|
Пример использования в IF
:
if [ $x -eq $y ]
then
echo 'true'
else
echo 'false'
fi
Знаковое сравнение
Оператор | Описание | Пример |
---|---|---|
= |
Равно [ "$a" = "$b" ]
То есть строка a равна строке b
|
[ 'linux' = 'windows' ] — false
[ 'unix' = 'unix' ] — true
|
!= |
Не равно [ "$a" != "$b" ]
Оператор обратный = |
[ 'linux' != 'windows' ] — true
[ 'unix' != 'unix' ] — false
|
=~ |
Содержит [[ "$a" =~ $b ]]
То есть в строке a есть b
Обратите внимание, что для данного оператора используются двойные квадратные скобки |
[[ 'linux' =~ 'windows' ]] — false
[[ 'unix' =~ 'ni' ]] — true
|
> |
Больше [ $x > $y ]
Проверяет больше ли x чем y
|
[ 1 > 2 ] — false
[ 3 > 3 ] — false
[ 5 > 4 ] — true
|
< |
Меньше [ $x < $y ]
Проверяет, что число в левой части ( x ) меньше числа в правой (y )
|
[ 1 < 2 ] — true
[ 3 < 3 ] — false
[ 5 < 4 ] — false
|
Пример использования в IF
:
if [ $x = $y ]
then
echo 'true'
else
echo 'false'
fi
Несколько условий
Оператор | Описание | Пример |
---|---|---|
-a |
Логическое И [ $x -eq $y -a $z -le $w ] В данном примере, проверяет, что ( x равно y ) И (z
меньше или равно w )
|
[ 1 -eq 2 -a 3 -le 4 ] — false
[ 5 -eq 5 -a 3 -le 4 ] — true
[ 5 -eq 5 -a 6 -le 4 ] — false
|
-o |
Логическое ИЛИ [ $x -ne $y -o $z -ge $w ]
В данном примере, проверяет, что ( x не равно y ) ИЛИ
(z больше или равно w )
|
[ 1 -eq 2 -o 3 -le 4 ] — true
[ 5 -eq 5 -o 3 -le 4 ] — true
[ 5 -eq 5 -o 6 -le 4 ] — true
[ 1 -eq 2 -o 6 -le 4 ] — false
|
Сравнение файлов
Оператор | Описание | Пример |
---|---|---|
-f |
Проверка на существование файла [ -f $file ] Оператор проверяет, существует ли файл $file
|
[ -f '/etc/filename' ] — true [ -f '' ] — false
|
-d |
Проверка на существование папки [ -d $folder ] Оператор проверяет, существует ли каталог $folder
|
[ -d '/etc/exist_folder' ] — true [ ! -d '/etc/exist_folder' ] — false [ -d '/etc/not_exist_folder' ] — false [ ! -d '/etc/not_exist_folder' ] — true
|
-x |
Проверка на существование исполняемого файла [ -x $file ] Оператор проверяет, существует ли файл $file и является ли он исполняемым
|
[ -x '/etc/exec_filename' ] — true [ -x '/etc/noexec_filename' ] — false [ -x '' ] — false
|
Пример использования в IF
:
if [ -x '/home/vadik/Рабочий стол/test.sh' ]
then
echo 'true'
else
echo 'false'
fi