Музыка — это стенография чувств (Л. Толстой).

Как сравнивать строки в сценариях Bash Shell в Linux

2 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
27 марта 2019
Как создать псевдонимы Bash
В этой статье вы узнаете, как сравнивать строки в сценариях оболочки bash. Вы также научитесь проверять, является ли строка пустой или нулевой.

Работа со строками является частью любого языка программирования. Скрипты Bash не отличаются. Даже синтаксис почти такой же.

В этой краткой статье мы покажем вам, как сравнивать строки в скриптах оболочки Bash в Linux.

 

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

Вот как вы сравниваете строки в Bash.

if ["$ string1" == "$ string2"]

 

Вы также можете использовать строку напрямую вместо использования переменной.

if ["$string1" == "Это моя строка"]

 

Позвольте нам показать это вам на примерах.

 

Проверьте, равны ли две строки

Если вы хотите проверить, равны ли две строки, вот пример:

!/bin/bash
 string1="MyString"
 string2="MyString"
 if [ "$string1" == "$string2" ]
 then
     echo "Строки равны"
 else
     echo "Строки не равны"
 fi

 

Обратите внимание на пространства
Между [именем переменной и оператором равенства == должен быть пробел. Если вы пропустите какое-либо из пробелов здесь, вы увидите ошибку типа «ожидается унарный оператор» или отсутствует «]».

 

Проверьте, не равны ли строки в Bash

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

if ["$string1" != "Not MyString"]

 

Полный пример выглядит так:

!/bin/bash
 string1="MyString"

 if [ "$string1" != "Not MyString" ]
 then
     echo "Строки не равны"
 else
     echo "Строки равны"
 fi

 

Проверьте, является ли строка нулевой или пустой в Bash

В отличие от некоторых других языков, таких как C ++, в Bash вы можете проверить, является ли строка пустой или пустой с помощью одной команды:

if [ -z "$VAR" ]

 

-z фактически проверяет, равна ли длина переменной нулю или нет. Если переменная не установлена ​​или если она пустая (равна «»), длина будет равна нулю и, следовательно, условие вернет true.

Полный пример можно увидеть здесь:

!/bin/bash
 string1=
 string2=""
 if [ -z "$string1" ]
 then
     echo "Нулевая строка"
 fi
 if [ -z "$string2"]
 then
     echo "Строка пуста"
 fi

 

Примечание об использовании одинарных скобок ‘[]’ и двойных скобок ‘[[]]’ в скриптах bash

Вы также можете использовать оператор if с двойными скобками, например так:

if [["$string1" == "Моя строка"]]

 

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

if [$string1 == "Моя строка"]

 

Если переменная $ string1 пуста или не определена в приведенном выше коде, эта строка станет эквивалентной

if [ == "$string2"]

 

Заключение

Мы надеемся, что эта небольшая статья помогла вам сравнить строки в скриптах bash. Я также рекомендую прочитать еще одну статью по команде bash sleep.

Если у вас есть вопросы или предложения, не стесняйтесь оставлять комментарии ниже.

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

Просмотров: 144

Если статья понравилась, то поделитесь ей в социальных сетях:

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

Войти с помощью: 

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

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

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

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close