Поиск по сайту:
Мы вот-вот сможем сказать: "Сегодня наша программа доказала теорему ферма". (Алан.Дж.Перлис)

Что такое знак «Не равно» в Bash? Как это использовать

27.08.2021
Bash Heredoc

Неравный контроллер «-ne» внутри языка программирования Linux Bash сравнивает два возможных значения, если они не эквивалентны. Функция not equal в Ubuntu bash обозначается символом «-ne», который будет начальным символом «не равно». Также включен оператор «!=», Который используется для обозначения неравенства. Восклицательный знак, то есть «!=», Также часто используется в некоторых компьютерных языках, чтобы указать, что что-то не равно. Кроме того, чтобы выражение не равно работало, оно должно быть заключено в квадратные скобки [[…]]. Операция «Не равно» дает логический результат «Истина» или «Ложь». Выражение not equal часто используется в сочетании только с выражениями if или elif для проверки равенства и выполнения инструкций.

 

Пример 01:

Давайте посмотрим, как работает знак «не равно» в 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 "Одинаковые имена"

 

Читать  Как переименовать сразу несколько файлов в Linux

Когда файл 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

 

Пример 02:

Давайте на этот раз посмотрим на код по-другому. Здесь все немного иначе. На этот раз мы использовали две переменные для сравнения. Мы назвали эти строковые переменные «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 "Одинаковые имена"

 

Читать  Подстановка процессов: необычный, но продвинутый способ перенаправления ввода/вывода в Linux

На этот раз, когда мы выполнили код bash, он выдает нам исключение в терминале, говорящее «ожидается целочисленное выражение». Это означает, что оператор «-ne» можно использовать только для целочисленных типов переменных для сравнения. С другой стороны, он также показывает неправильный вывод «Имена равны», и это большая ошибка.

$ bash test.sh

 

Пример 03:

На этот раз мы будем использовать переменные целочисленного типа для сравнения оператора «-ne» вместо оператора «!=» В примере. Итак, мы инициализировали переменные целочисленного типа «val1» и «val2» числовыми значениями. Затем мы использовали эти переменные в условии «if» для сравнения «-ne». Остальной код тот же, с небольшими изменениями.

#!/bin/bash
val1=13
val2=17
if [ $sval1 - $sval2 ]; then
echo "Числа не равны"
else
echo "Числа одинаковые"

 

Поскольку переменные val1 и val2 имеют разные числовые значения, при выполнении отображается, что «Числа не равны».

$ bash test.sh

 

Пример 04:

Мы использовали значения строкового типа из одного слова или некоторые целочисленные типы во всех вышеупомянутых случаях. На этот раз мы будем использовать длинную строку или предложение в переменной для сравнения. После открытия файла bash мы объявили две переменные строкового типа, «s1» и «s2» с одинаковыми строковыми значениями. На этот раз мы присвоили длинное предложение как значение обеим переменным, например, «Мы любим Python». Мы сравнили обе переменные с оператором «!=» Внутри оператора if и в разделе скобок, поскольку обе переменные являются строковыми.

#!/bin/bash
s1="Мы любим Python"
s2="Я люблю Python"
if ["$s1" != "$s2"]; then
echo "Строки не равные"
else
echo "Строки одинаковые"

 

Поскольку условие идет не так, то выводится сообщение «Строки равны».

$ bash test.sh

 

Пример 05:

В нашем последнем примере мы объявили две переменные, для сравнения строковых значений которых являются адреса электронной почты. Одним взглядом вы не сможете указать на ошибку, но оба значения не совпадают. Остальной код не меняется. Сохраните код и поверните к терминалу.

#! /bin/bash
s1="andreyex@gmail.com"
s2="AndreyExx@gmail.com"
if [ "$s1" != "$s2" ]; then
echo "Почтовые ящики разные"
else
echo "Почтовые ящики одинаковы"

 

Читать  Команда ng не найдена

Поскольку электронные письма не равны, он выполнил первый оператор echo в предложении then, в котором говорится, что «письма не равны», после того, как файл был выполнен в оболочке с запросом «bash».

$ bash test.sh

 

Заключение:

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

**ссылки nofollow

Это может быть вам интересно


Рекомендуемое
Мы проводим треть своей жизни на рабочем месте, и большую…

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: