Неравный контроллер «-ne» внутри языка программирования Linux Bash сравнивает два возможных значения, если они не эквивалентны. Функция not equal в Ubuntu bash обозначается символом «-ne», который будет начальным символом «не равно». Также включен оператор «!=», Который используется для обозначения неравенства. Восклицательный знак, то есть «!=», Также часто используется в некоторых компьютерных языках, чтобы указать, что что-то не равно. Кроме того, чтобы выражение не равно работало, оно должно быть заключено в квадратные скобки [[…]]. Операция «Не равно» дает логический результат «Истина» или «Ложь». Выражение not equal часто используется в сочетании только с выражениями if или elif для проверки равенства и выполнения инструкций.
Давайте посмотрим, как работает знак «не равно» в bash. Для этого сначала войдем в операционную систему Linux. В нашем случае мы работали над Ubuntu 20.04. После успешного входа в систему запустите консольное приложение с именем «терминал» на рабочем столе, нажав «Ctrl + Alt + T». Кроме того, вы можете изучить его в строке меню «Действия» и выполнить поиск с помощью панели поиска. Приложение терминала успешно запущено; мы создадим новый файл bash, чтобы сохранить в нем код bash. Итак, мы создали файл bash с именем «test.sh» со встроенным «сенсорным» запросом, как показано ниже.
$ touch test.sh
Когда вы закончите создание файла, откройте этот файл в любом из редакторов, уже встроенных или установленных в вашей системе Linux. В нашем случае у нас есть редактор GNU, настроенный в нашей Ubuntu 20.04. Следовательно, мы открывали файл test.sh с помощью нано-запроса следующим образом:
$ nano test.sh
Вы увидите, что вновь созданный файл bash будет открыт через редактор GNU. Теперь напишите код, показанный на изображении ниже, в вашем файле bash. Итак, сначала мы добавили расширение bash. После этого мы объявили переменную «val», имеющую строковое значение «AndreyEx». В операторе «if» мы объявили условие. Мы создадим строковый элемент $val и сравним его со строкой «AndreyEx». В этом случае мы увидим, не идентична ли предоставленная текстовая переменная bash «val» указанной строке «AndreyEx». Если условие удовлетворяется и оба значения не совпадают, будет запущен первый оператор echo. В противном случае он выполнит другую часть кода и завершит оператор «if-else». При сравнении типов текста оператор -ne нельзя было отбросить; в качестве альтернативы оператор «!=» всегда должен быть отброшен. Так, вы можете видеть, что в приведенном ниже коде мы использовали «!=» вместо «-new». Сохраните этот код с помощью «Ctrl + S», а выйдите с помощью сочетания клавиш «Ctrl + X».
/bin/bash fname="AndreyEx" if ["$fname" != "AndreyEx"]; then echo "Имена не равны" else echo "Одинаковые имена"
Когда файл bash выполнялся в терминале, он отображал другую часть кода, потому что условие не было выполнено. Что касается выполнения условий, не должно быть одинаковых значений строкового типа. Таким образом, мы получили вывод «Это равно».
$ bash test.sh
Откройте файл bash еще раз с запросом «nano». Единственное изменение должно быть сделано в «if-statement», заключенном в «квадратные скобки». Мы только что изменили строку «AndreyEx» на «AndreyExx». Теперь значение переменной «AndreyExx» и эта строка «AndreyEx» не соответствуют друг другу в равной степени. Здесь условие не выполняется. Следовательно, эхо-часть предложения «then» должна быть выполнена и вывести в терминале «It’s Not Equal». Давайте еще раз сохраним код bash и выйдем из редактора.
/bin/bash fname="AndreyEx" if ["$fname" != "AndreyExx"]; then echo "Имена не равны" else echo "Одинаковые имена"
После успешного выполнения файла bash с помощью команды bash он, как и ожидалось, распечатал «Это не равно».
$ bash test.sh
Давайте на этот раз посмотрим на код по-другому. Здесь все немного иначе. На этот раз мы использовали две переменные для сравнения. Мы назвали эти строковые переменные «fname» и «lname» с разными значениями, например, «AndreyEx» и «Destroyer». Теперь, в части условия оператора «if», мы использовали обе переменные для сравнения с помощью оператора неравенства «!=». Если условие удовлетворяется, он реализует эхо-оператор части «then». Или же он запустит часть «echo» оператора «else».
/bin/bash fname="AndreyEx" lname="Destroyer" if ["$fname" != "$lname"]; then echo "Имена не равны" else echo "Одинаковые имена"
После запуска bash-документа test.sh в терминале мы получили результат первого эхо-выражения «Имена не равны» в соответствии с выполненным условием.
$ bash test.sh
Давайте посмотрим, что произойдет, если мы используем «-ne» вместо «!=» В коде bash при сравнении переменных строкового типа. Откройте bash-файл test.sh еще раз с помощью инструкции nano. После открытия файла замените часть «!=» В строке условия оператора «if» на «-ne». Остающийся код будет таким же, и никаких изменений в нем не будет.
/bin/bash fname="AndreyEx" lname="Destroyer" if ["$fname" -ne "$lname"]; then echo "Имена не равны" else echo "Одинаковые имена"
На этот раз, когда мы выполнили код bash, он выдает нам исключение в терминале, говорящее «ожидается целочисленное выражение». Это означает, что оператор «-ne» можно использовать только для целочисленных типов переменных для сравнения. С другой стороны, он также показывает неправильный вывод «Имена равны», и это большая ошибка.
$ bash test.sh
На этот раз мы будем использовать переменные целочисленного типа для сравнения оператора «-ne» вместо оператора «!=» В примере. Итак, мы инициализировали переменные целочисленного типа «val1» и «val2» числовыми значениями. Затем мы использовали эти переменные в условии «if» для сравнения «-ne». Остальной код тот же, с небольшими изменениями.
#!/bin/bash val1=13 val2=17 if [ $sval1 - $sval2 ]; then echo "Числа не равны" else echo "Числа одинаковые"
Поскольку переменные val1 и val2 имеют разные числовые значения, при выполнении отображается, что «Числа не равны».
$ bash test.sh
Мы использовали значения строкового типа из одного слова или некоторые целочисленные типы во всех вышеупомянутых случаях. На этот раз мы будем использовать длинную строку или предложение в переменной для сравнения. После открытия файла bash мы объявили две переменные строкового типа, «s1» и «s2» с одинаковыми строковыми значениями. На этот раз мы присвоили длинное предложение как значение обеим переменным, например, «Мы любим Python». Мы сравнили обе переменные с оператором «!=» Внутри оператора if и в разделе скобок, поскольку обе переменные являются строковыми.
#!/bin/bash s1="Мы любим Python" s2="Я люблю Python" if ["$s1" != "$s2"]; then echo "Строки не равные" else echo "Строки одинаковые"
Поскольку условие идет не так, то выводится сообщение «Строки равны».
$ bash test.sh
В нашем последнем примере мы объявили две переменные, для сравнения строковых значений которых являются адреса электронной почты. Одним взглядом вы не сможете указать на ошибку, но оба значения не совпадают. Остальной код не меняется. Сохраните код и поверните к терминалу.
#! /bin/bash s1="andreyex@gmail.com" s2="AndreyExx@gmail.com" if [ "$s1" != "$s2" ]; then echo "Почтовые ящики разные" else echo "Почтовые ящики одинаковы"
Поскольку электронные письма не равны, он выполнил первый оператор echo в предложении then, в котором говорится, что «письма не равны», после того, как файл был выполнен в оболочке с запросом «bash».
$ bash test.sh
В этой простой статье мы видели много примеров работы оператора неравенства. Мы разработали эти примеры для переменных строкового и целочисленного типов. Мы надеемся, что эта статья будет для вас полезной и простой в написании.