ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как сравнивать числа в Bash?

Как сравнивать числа в Bash?

Вы узнали о многих операциях сравнения, которые можно использовать для сопоставления переменных в bash. Но иногда вы можете столкнуться с многочисленными ситуациями, в которых вам необходимо разработать сценарии для выполнения определенных задач и выполнить сценарий несколько раз на основе определенных значений целых чисел в bash. В этих ситуациях мы можем использовать операторы bash для сравнения целых чисел.

 

Различные способы сравнения целочисленных переменных в сценариях Bash:

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

 

Способ 01: одинарные квадратные скобки

Квадратные скобки «[]» также называются одинарными квадратными скобками для проверки команды в сценариях bash. Давайте включим несколько примеров, демонстрирующих идею сценариев bash в Linux, чтобы мы могли быстро реализовать различные операторы bash. Вот несколько примеров использования различных операторов в одинарных квадратных скобках.

 

Пример 01: Использование операторов «-eq» и ​​«-ne»

Применим на практике оператор «-eq», определяющий, эквивалентны ли несколько переменных в bash-скриптах, в качестве начальной демонстрации оператора сравнения. Чтобы начать применять пример на практике, мы должны сначала создать файл сценария bash, используя ключевое слово «touch» в имени файла и добавив расширение «sh». Вся команда создания файла выглядит следующим образом:

andreyex@destroyer:~$ touch compare.sh

 

При вводе вышеупомянутой команды будет создан файл с именем «compare.sh». Чтобы мы могли привести код в действие, мы затем хотим перейти в редактор «nano». Для этого мы добавим команду «compare.sh» после ключевого слова «nano», как показано ниже:

andreyex@destroyer:~$ nano compare.sh

 

Редактор nano запустится после нажатия кнопки ввода. Чтобы мы могли сравнить два целых числа, мы должны написать необходимый код в этом разделе.

 

1: Равно, оператор «-eq»

В этом коде мы использовали две переменные, называемые «variable1» и «variable2», и мы использовали ключевое слово «чтение», которое будет получать значения этих переменных от пользователя во время выполнения соответственно. Затем оператор «if» использовался для определения того, равны ли целые числа.

echo "Введите входное целое число variable1: "
read variable1
echo "Введите входное целое число variable2: "
read variable2
if [ $variable1 -eq $variable2 ] ;
 then
    echo «Обе входные целочисленные переменные равны...»
 else
    echo « Обе входные целочисленные переменные не равны...»
fi

 

Чтобы закрыть редактор nano после завершения написания программы, нажмите «ctrl + x». Затем мы снова вернулись к основному терминалу Linux. Напишите «bash» и имя файла для запуска кода.

andreyex@destroyer:~$ bash compare.sh

 

Результат выполнения кода, показанного выше, виден здесь:

Введите входное целое число variable1:
100
Введите входное целое число variable2:
100
Обе входные целочисленные переменные равны...

2: Не равно, оператор «-ne»

Теперь мы будем использовать оператор сравнения «-ne», что означает «не равно». С помощью этого оператора мы проверим, что «variable1» не равна «variable2» в сценарии bash. Для этого мы внесли некоторые изменения в тот же вышеприведенный файл «compare.sh». В измененном коде мы только что изменили значения и оператор «-eq» на «-ne», как показано ниже:

echo "Введите входное целое число variable1: "
read variable1
echo "Введите входное целое число variable2: "
read variable2
if [ $variable1 -ne $variable2 ] ;
 then
    echo «Обе входные целочисленные переменные не равны...»
 else
    echo «Обе входные целочисленные переменные равны...»
fi

 

Вот результат, показанный ниже:

Введите входное целое число variable1:
50
Введите входное целое число variable2:
100
Обе входные целочисленные переменные не равны...

Пример 02: Использование операторов «-gt» и «-lt»

Это еще одна иллюстрация того, как использовать операторы сравнения «-gt» и «-lt» в коде. Мы оценим, является ли «variable1» больше или меньше «variable2» в экземпляре.

1: Больше, оператор «-gt»

Во-первых, мы определяем, превышает ли variable1 2 или нет. Фрагмент кода, демонстрирующий реализацию оператора «-gt», показан ниже.

echo "Введите входное целое число variable1: "
read variable1
echo "Введите входное целое число variable2: "
read variable2
if [ $variable1 -gt $variable2 ] ;
 then
    echo «variable1 больше variable2...»
 else
    echo «variable1 не больше variable2...»
fi

 

Когда мы выполнили сценарий, результат показал, что «variable1» больше, чем «variable2».

Введите входное целое число variable1:
98
Введите входное целое число variable2:
96
variable1 больше variable2...

2: Меньше, оператор «-lt»

Теперь, используя оператор «-lt» в сценариях bash, мы определим, меньше ли «variable1», чем «variable2», или нет.

echo "Введите целое число variable1: "
read variable1
echo "Введите целое число variable2: "
read variable2
if [ $variable1 -lt $variable2 ] ;
 then
    echo «variable1 меньше variable2...»
 else
    echo «variable1 не меньше variable2...»
fi

 

Рассмотрим результаты приведенного выше примера:

Введите целое число variable1:
96
Введите целое число variable2:
98
variable1 меньше variable2...

Пример 03: Использование операторов «-ge» и «-le»

В этом примере мы проверим, больше или меньше переменная 1, чем переменная 2, и может ли она быть равна или не равна переменной 2.

1: Больше или равно, оператор «-ge»:

Мы собираемся использовать оператор «-ge», чтобы проверить, содержит ли «variable1» большее значение или эквивалентное значение «переменную2».

echo "Введите целое число variable1: "
read variable1
echo "Введите целое число variable2: "
read variable2
if [ $variable1 -ge $variable2 ] ;
 then
    echo «variable1 больше или равно variable2...»
 else
    echo «variable1 не больше или не равна variable2...»
fi

 

Написав «bash compare.sh», мы получим желаемый результат:

Введите целое число variable1:
25
Введите целое число variable2:
24
variable1 больше или равно variable2...

2: Меньше или равно, оператор «-le»

Теперь мы будем использовать оператор «-le» в существующем коде, чтобы мы могли проверить, меньше ли значение «variable1» или равно значению «variable2».

echo "Введите целое число variable1: "
read variable1
echo "Введите целое число variable2: "
read variable2
if [ $variable1 -le $variable2 ] ;
 then
    echo "variable1 меньше или равно variable2..."
 else
    echo "variable1 не меньше или не равна variable2..."
fi

 

Посмотрите на вывод в терминале Linux:

Введите целое число variable1:
11
Введите целое число variable2:
11
variable1 меньше или равно variable2...

Способ 02: Двойные квадратные скобки

Двойные фигурные скобки «[[]]» выполняют ту же работу, что и одинарные квадратные скобки в bash. Но взамен bash не вернет ничего, кроме 0, если условие истинно, и 1, если условие ложно. Теперь мы собираемся реализовать различные примеры второго способа использования оператора сравнения в сценариях bash.

 

Пример 01: Использование операторов (<) и (>)

Ниже приведена конкретная ситуация двойной квадратной скобки, в которой мы будем применять индикаторы «>» и «<», чтобы определить, больше или меньше значение «variable1», чем параметр «variable2». Во-первых, для этого мы создали совершенно новый файл для техники двойных квадратных скобок:

andreyex@destroyer:~$ touch double.sh

 

Мы использовали команду nano для входа в редактор nano:

andreyex@destroyer:~$ nano double.sh

 

Наш текущий редактор — редактор nano. Начнем с написания кода:

1: Меньше, оператор «<»

Вот пример меньше чем, где у нас есть две переменные, и мы получим значения от пользователя, поэтому мы использовали «read». Затем мы выполним операцию меньше чем над этими переменными.

echo "Введите целое число variable1:"
read variable1
echo "Введите целое число variable2:"
read variable2
if ( ( $variable1 < $variable2 ) ) ;
 then
    echo "Условие истинно"
    echo "Вернуть 0"
 else
    echo "Условие неверно"
    echo "Вернуть 1"
fi

 

Чтобы скомпилировать скрипт, мы использовали команду «bash» вместе с именем файла:

andreyex@destroyer:~$ bash double.sh

Вот результат:
Введите целое число variable1:
76
Введите целое число variable2:
102
Условие истинно
Вернуть 0

2: Больше, оператор «>»

Теперь мы будем использовать следующий оператор, символ «>», чтобы определить, больше ли значение «variable1» или нет. Как видите, в этом случае:

echo "Введите целое число variable1: "
read variable1
echo "Введите целое число variable2:"
read  variable2
if ( ( $variable1 > $variable2 ) ) ;
 then
    echo "Условие истинно"
    echo "Вернуть 0"
 else
    echo "Условие неверно"
    echo "Вернуть 1"
fi

 

После выполнения скрипта в терминале Linux мы получили такой вывод:

Введите целое число variable1:
27
Введите целое число variable2:
22
Условие истинно
Вернуть 0

Пример 02: Использование операторов (<=) и (>=)

Теперь, когда реализован второй пример, мы можем использовать оператор скрипта bash «>=», чтобы определить, меньше ли значение переменной 1 или равно значению переменной 2.

1: Меньше или равно, оператор «<=»

В этом случае мы проверим меньшее или равное значение в этих переменных и напечатаем вывод.

echo "Введите целое число variable1:"
read variable1
echo "Введите целое число variable2:"
read variable2
if ( ( $variable1 < = $variable2 ) ) ;
 then
    echo "Условие истинно"
    echo "Вернуть 0"
 else
    echo "Условие неверно"
    echo "Вернуть 1"
fi

 

Результат вышеупомянутой демонстрации показан на скриншоте ниже:

Введите целое число variable1:
65
Введите целое число variable2:
65
Условие истинно
Вернуть 0

 

2: Больше или равно, оператор «>=»

В приведенном ниже примере оператор «>=» из сценария bash используется для проверки того, имеют ли «D1» и «D2» значения, которые больше или равны.

echo "Введите входное целое число variable1: "
read variable1
echo "Введите входное целое число variable2:"
read variable2
if ( ( $variable1 > = $variable2 ) ) ;
 then
    echo "Условие истинно"
    echo "Вернуть 0"
 else
    echo "Условие неверно"
    echo "Вернуть 1"
fi

 

Следуя предполагаемым результатам примера:

Введите целое число variable1:
44
Введите целое число variable2:
44
Условие истинно
Вернуть 0

 

Заключение

Мы научились использовать скрипт bash для сравнения целых чисел. Кроме того, мы рассмотрели, как использовать несколько операторов в скрипте bash. С подробными объяснениями мы создали множество примеров этих операторов в сценариях bash.

Exit mobile version