Полный цикл в digital

Операторы 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
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг