Вы узнали о многих операциях сравнения, которые можно использовать для сопоставления переменных в bash. Но иногда вы можете столкнуться с многочисленными ситуациями, в которых вам необходимо разработать сценарии для выполнения определенных задач и выполнить сценарий несколько раз на основе определенных значений целых чисел в bash. В этих ситуациях мы можем использовать операторы bash для сравнения целых чисел.
Для сравнения целых чисел мы будем использовать два важных оператора в bash, чтобы получить сравнения: квадратные и двойные фигурные скобки.
Квадратные скобки «[]» также называются одинарными квадратными скобками для проверки команды в сценариях bash. Давайте включим несколько примеров, демонстрирующих идею сценариев bash в Linux, чтобы мы могли быстро реализовать различные операторы bash. Вот несколько примеров использования различных операторов в одинарных квадратных скобках.
Применим на практике оператор «-eq», определяющий, эквивалентны ли несколько переменных в bash-скриптах, в качестве начальной демонстрации оператора сравнения. Чтобы начать применять пример на практике, мы должны сначала создать файл сценария bash, используя ключевое слово «touch» в имени файла и добавив расширение «sh». Вся команда создания файла выглядит следующим образом:
andreyex@destroyer:~$ touch compare.sh
При вводе вышеупомянутой команды будет создан файл с именем «compare.sh». Чтобы мы могли привести код в действие, мы затем хотим перейти в редактор «nano». Для этого мы добавим команду «compare.sh» после ключевого слова «nano», как показано ниже:
andreyex@destroyer:~$ nano compare.sh
Редактор nano запустится после нажатия кнопки ввода. Чтобы мы могли сравнить два целых числа, мы должны написать необходимый код в этом разделе.
В этом коде мы использовали две переменные, называемые «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 Обе входные целочисленные переменные равны...
Теперь мы будем использовать оператор сравнения «-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 Обе входные целочисленные переменные не равны...
Это еще одна иллюстрация того, как использовать операторы сравнения «-gt» и «-lt» в коде. Мы оценим, является ли «variable1» больше или меньше «variable2» в экземпляре.
Во-первых, мы определяем, превышает ли 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...
Теперь, используя оператор «-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...
В этом примере мы проверим, больше или меньше переменная 1, чем переменная 2, и может ли она быть равна или не равна переменной 2.
Мы собираемся использовать оператор «-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...
Теперь мы будем использовать оператор «-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...
Двойные фигурные скобки «[[]]» выполняют ту же работу, что и одинарные квадратные скобки в bash. Но взамен bash не вернет ничего, кроме 0, если условие истинно, и 1, если условие ложно. Теперь мы собираемся реализовать различные примеры второго способа использования оператора сравнения в сценариях bash.
Ниже приведена конкретная ситуация двойной квадратной скобки, в которой мы будем применять индикаторы «>» и «<», чтобы определить, больше или меньше значение «variable1», чем параметр «variable2». Во-первых, для этого мы создали совершенно новый файл для техники двойных квадратных скобок:
andreyex@destroyer:~$ touch double.sh
Мы использовали команду nano для входа в редактор nano:
andreyex@destroyer:~$ nano double.sh
Наш текущий редактор — редактор nano. Начнем с написания кода:
Вот пример меньше чем, где у нас есть две переменные, и мы получим значения от пользователя, поэтому мы использовали «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
Теперь мы будем использовать следующий оператор, символ «>», чтобы определить, больше ли значение «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
Теперь, когда реализован второй пример, мы можем использовать оператор скрипта bash «>=», чтобы определить, меньше ли значение переменной 1 или равно значению переменной 2.
В этом случае мы проверим меньшее или равное значение в этих переменных и напечатаем вывод.
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
В приведенном ниже примере оператор «>=» из сценария 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.