Linux bash сравнение чисел

7.3. Операции сравнения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

if [[ «$a» if [ «$a» \ » необходимо экранировать внутри [ ].

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

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

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

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

См. Пример 25-6 относительно применения этого оператора сравнения.

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

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

Оператор -n требует, чтобы строка была заключена в кавычки внутри квадратных скобок. Как правило, проверка строк, не заключенных в кавычки, оператором ! -z, или просто указание строки без кавычек внутри квадратных скобок (см. Пример 7-6), проходит нормально, однако это небезопасная, с точки зрения отказоустойчивости, практика. Всегда заключайте проверяемую строку в кавычки. [1]

Пример 7-5. Операции сравнения

Пример 7-6. Проверка — является ли строка пустой

Пример 7-7. zmost

построение сложных условий проверки

логическое И (and)

exp1 -a exp2 возвращает true, если оба выражения, и exp1, и exp2 истинны.

логическое ИЛИ (or)

exp1 -o exp2 возвращает true, если хотябы одно из выражений, exp1 или exp2 истинно.

Они похожи на операторы Bash && и ||, употребляемые в двойных квадратных скобках.

Операторы -o и -a употребляются совместно с командой test или внутри одинарных квадратных скобок.

Чтобы увидеть эти операторы в действии, смотрите Пример 8-3 и Пример 25-11.

Источник

Как сравнивать числа в оболочке Bash в Linux

Операторы для Баш сравнения чисел

-eq сравнить цифры в bash для равенства, возвращает 0, если равно if [ $a -eq $b ] then
-ge сравнения чисел в bash, если больше или равно. Результат возвращает 0, если больше или равно if [ $a -ge $b ] then
-gt сравнивает числа в bash, если больше. if [ $a -gt $b ] then
-le сравнивает числа в bash, если меньше или равно. if [ $a -le $b ] then
-lt сравнивает числа в bash, если меньше. if [ $a -lt $b ] then
-ne сравнивает числа в bash, если не равно или нет. if [ $a -ne $b ] then

Примеры в деталях операторов сравнения числа в Bash:

1. оператор -eq

Этот оператор сравнивает числа, будет проверять значение равно или нет. Если оно равно, то возвращается 0.

В приведенном выше примере мы взяли числа 2 и 3 в первый раз и система возвратила значение 1, однако, когда мы приняли одинаковые значения для а и б, переменная возвращает нулевое значение.

2. оператор -ge

Этот оператор сравнивает числа и проверяет значения на больше или равно. Если значение больше или равно, то он возвращаемое значение 0.

3. оператор -gt

Этот оператор сравнения чисел будет проверять число на большее. Если значение больше, то возвращает 0.

4. оператор -le

Этот оператор сравнения числа будет проверять значения на меньше или равно. Если оно меньше или равно, то возвращаемое значение 0.

5. оператор -lt

Этот оператор сравнения числа будет проверять значения на меньшее. Если число меньше, то возвращаемое значение 0.

6. оператор -ne

Этот оператор сравнения числа будет проверять значения на не равно. Если числа не равны, то возвращаемое значение равно 0.

Источник

Операторы сравнения в UNIX shell

Статья представляет из себя шпаргалку по операторам сравнения в системах на базе UNIX. Применимо к основным командным интерпретаторам — sh (Bourne Shell), bash (Bourne Again Shell), 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

Пример использования в 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
=

$b ]] Содержит.
То есть в строке a есть b.
Обратите внимание, что для данного оператора используются двойные квадратные скобки. [[ ‘linux’ =

‘windows’ ]] — False
[[ ‘unix’ =

‘ni’ ]] — True -z [ -z $b ] Проверка на нулевой размер.
Оператор проверяет, является ли строка b с нулевым размером. [ -z ‘linux’ ] — False
[ -z » ] — True -n [ -n $b ] Проверка на ненулевой размер.
Оператор обратный -z. [ -n ‘linux’ ] — True
[ -n » ] — False [ $b ] Проверка на пустоту.
Оператор проверяет, является ли строка b не пустой. [ ‘linux’ ] — True
[ » ] — False -f [ $file ] Проверка на существование файла.
Оператор проверяет, существует ли файл $file. [ -f ‘/etc/filename’ ] — True
[ -f » ] — False

Пример использования в IF

if [ «$a» = «$b» ]
then
echo ‘true’
elif [[ «$a» =

$b ]]
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

Дополнительно

Как написать IF в одну строку

if [ $x -ne 0 ]; then echo 1; fi

if [ $x -ne 0 -a $y -eq 1 ]; then echo 1; else echo 2; fi

Арифметические операции

Расчет можно выполнить одним из следующих методов:

sum=$(( $sum1 + $sum2 + $sum3 ))

sum=`expr $sum1 + $sum2 + $sum3`

* где операции могут быть следующие:

  • + — сложение;
  • — вычитание;
  • * — умножение;
  • / — деление;
  • % — остаток от деления;
  • = — приравнивание.

Ошибка «Integer expression expected»

Чаще всего, возникает при попытках использовать не тот оператор, например для строки -le (который должен использоваться для числа).

Примеры неправильного использования операторов:

Источник

Как сравнивать числа в оболочке Bash в Linux

Главное меню » Операционная система Linux » Как сравнивать числа в оболочке Bash в Linux

Операторы для Баш сравнения чисел

оператор что делает пример
-eq сравнить цифры в bash для равенства, возвращает 0, если равно if [ $a -eq $b ] then
-ge сравнения чисел в bash, если больше или равно. Результат возвращает 0, если больше или равно if [ $a -ge $b ] then
-gt сравнивает числа в bash, если больше. if [ $a -gt $b ] then
-le сравнивает числа в bash, если меньше или равно. if [ $a -le $b ] then
-lt сравнивает числа в bash, если меньше. if [ $a -lt $b ] then
-ne сравнивает числа в bash, если не равно или нет. if [ $a -ne $b ] then

Примеры в деталях операторов сравнения числа в Bash:

1. оператор -eq

Этот оператор сравнивает числа, будет проверять значение равно или нет. Если оно равно, то возвращается 0.

В приведенном выше примере мы взяли числа 2 и 3 в первый раз и система возвратила значение 1, однако, когда мы приняли одинаковые значения для а и б, переменная возвращает нулевое значение.

2. оператор -ge

Этот оператор сравнивает числа и проверяет значения на больше или равно. Если значение больше или равно, то он возвращаемое значение 0.

3. оператор -gt

Этот оператор сравнения чисел будет проверять число на большее. Если значение больше, то возвращает 0.

4. оператор -le

Этот оператор сравнения числа будет проверять значения на меньше или равно. Если оно меньше или равно, то возвращаемое значение 0.

5. оператор -lt

Этот оператор сравнения числа будет проверять значения на меньшее. Если число меньше, то возвращаемое значение 0.

6. оператор -ne

Этот оператор сравнения числа будет проверять значения на не равно. Если числа не равны, то возвращаемое значение равно 0.

Источник

xandroskin blog | it or not it

При создании shell-скриптов часто возникает необходимость проверки каких-то условий. Самым простым оператором для этого является if / then / else. Конструкцию if / then всегда необходимо заканчивать словом fi.

Принцип работы его заключается в следующем: проверяется условие в if, если выражение условия возвращает код завершения 0 (истинно), то выполняется оператор после then (оператор1); если код завершения отличен от нуля (ложно), то выполняется альтернативное действие после else (оператор2) или выход из условия fi в случае отсутствия необязательного условия else.
Условия могут быть вложенными друг в друга; условия могут состоять из нескольких выражений, объединенных логическими операциями И / ИЛИ. При написании условий рекомендуется использовать двойные квадратные кавычки [[,]] для обрамления выражений. В противном случае возникает ошибка интерпретатора, требующая экранирования знаков вроде «

Структуры «И» / «ИЛИ»

Инвертирование результата

Сравнение чисел

При сравнении чисел используются операторы, являющиеся англоязычными сокращениями:

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

При сравнении строк используются привычные операторы:

Кроме математических выражений, для строк доступны следующие условия:

Работа с файловой системой

Следующие условия помогут при работе с файлами:

Допускается отсутствие служебных слов if / then:

Допускается использование оператора test, который служит для проверки состояния файлов, сравнения строк и арифметических сравнений:

Источник

Читайте также:  How to install cursors linux
Оцените статью