В этой статье вы узнаете, как сравнивать строки в сценариях оболочки bash. Вы также научитесь проверять, является ли строка пустой или нулевой.
Работа со строками является частью любого языка программирования. Скрипты Bash не отличаются. Даже синтаксис почти такой же.
В этой краткой статье мы покажем вам, как сравнивать строки в скриптах оболочки Bash в Linux.
Вот как вы сравниваете строки в Bash.
if ["$ string1" == "$ string2"]
Вы также можете использовать строку напрямую вместо использования переменной.
if ["$string1" == "Это моя строка"]
Позвольте нам показать это вам на примерах.
Если вы хотите проверить, равны ли две строки, вот пример:
!/bin/bash string1="MyString" string2="MyString" if [ "$string1" == "$string2" ] then echo "Строки равны" else echo "Строки не равны" fi
Вместо того, чтобы проверять качество, давайте сделаем обратное и проверим неравенство. Bash также предоставляет оператор отрицания, так что вы можете легко использовать условие «если не равно» в сценариях оболочки.
if ["$string1" != "Not MyString"]
Полный пример выглядит так:
!/bin/bash string1="MyString" if [ "$string1" != "Not MyString" ] then echo "Строки не равны" else echo "Строки равны" fi
В отличие от некоторых других языков, таких как 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.
Если у вас есть вопросы или предложения, не стесняйтесь оставлять комментарии ниже.