BASH Программирование

Bash «if -z» и «if -n» для проверки строк

Bash «if -z» и «if -n» для проверки строк

Оператор «if» в Bash может использоваться с разными параметрами для различных целей. Всякий раз, когда мы работаем со строками в Bash, для нас очень важно проверить, является ли строка нулем или нет, чтобы она не могла вызвать никаких проблем при выполнении нашей программы. И флаги «-z», и «-n» можно использовать с оператором «if» для проверки строк, и мы объясним вам, как это можно сделать в сегодняшней статье.

Примечание: Linux Mint 20 используется для тестирования следующих примеров.

Метод использования Bash «if -z» и «if -n» для проверки строк

Чтобы объяснить использование Bash «if -z» и «if -n» для тестирования строк, мы хотели бы поделиться с вами следующими примерами сценариев.

Пример №1: Использование «if -n», чтобы показать, что строка равна нулю

Чтобы показать, что строка в Bash имеет значение NULL с помощью оператора «if -n», мы выполним следующие шаги:

Сначала мы создадим файл Bash в нашем домашнем каталоге с именем Strings.sh, как показано на изображении ниже:

После создания этого файла мы введем в наш файл сценарий, показанный на следующем изображении. Как и каждый сценарий Bash, первая строка, i.е. «#!/ bin / bash », является обязательным. Затем мы объявили нулевую строку с именем «имя». Пустую строку в Bash можно объявить, приравняв значение переменной к «». Затем у нас есть оператор «if», за которым следует флаг «-n», который возвращает истину, если строка не равна нулю. Мы использовали этот флаг для проверки нашей строки «name», которая имеет значение NULL. Это означает, что условие «if» не будет выполнено, так как значение флага «-n» в этом случае будет ложным. Следовательно, у нас также есть часть «else», которая будет выполняться путем печати сообщения на терминале.

Пришло время выполнить этот файл, что можно сделать с помощью команды, показанной ниже:

$ bash Строки.ш

Поскольку объявленная нами строка была нулевой, именно поэтому часть «else» нашего скрипта была выполнена, и соответствующее сообщение было напечатано на терминале, как показано на следующем изображении:

Пример № 2: Использование «if -n», чтобы показать, что строка не равна нулю

Чтобы показать, что строка в Bash не является нулевой с помощью оператора «if -n», мы выполним следующие шаги:

Мы введем следующий скрипт в наш файл Bash. Единственное изменение, которое мы внесли в сценарий, который мы создали выше для этого сценария, заключается в том, что на этот раз мы присвоили строке «имя» допустимое имя. Это означает, что наша строка на этот раз не является нулем, что означает, что часть сценария «если» должна быть выполнена.

Теперь запустите сценарий еще раз, и вы заметите, что наш измененный сценарий работает так, как мы хотели, выполнив на этот раз часть сценария «если», как показано на изображении ниже:

Пример №3: Использование «if -z», чтобы показать, что строка не является нулем

Чтобы показать, что строка в Bash не является нулевой с помощью оператора «if -z», мы выполним следующие шаги:

Сценарий для этого сценария почти такой же, как для сценария, описанного выше. Мы только заменили флаг «-n» на флаг «-z», но на этот раз мы также поменяли местами «if» и «else» части скрипта, потому что флаг «-z» возвращает true, если строка нулевой. Это означает, что на этот раз будет выполнена часть «else» скрипта, потому что наша строка не была нулевой.

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

Пример №4: Использование «if -z», чтобы показать, что строка равна нулю

Чтобы показать, что строка в Bash имеет значение NULL с помощью оператора «if -z», мы выполним следующие шаги:

В этом сценарии мы использовали тот же сценарий, что и в примере № 3. Единственное изменение, которое мы внесли в этот скрипт, - это то, что мы сделали нашу строку нулевой, присвоив ей нулевое значение, как вы можете видеть на изображении, показанном ниже:

Теперь, когда мы запускаем этот скрипт, будет выполнена часть «if» скрипта, потому что строка имеет значение NULL, и, следовательно, значение флага «-z» будет истинным, как вы можете видеть из следующего изображения:

Пример № 5: Ввод строковых пользовательских данных и их тестирование с помощью «if -z»

Для тестирования строкового ввода, предоставленного пользователем с помощью оператора «if -z», мы выполним следующие шаги:

Скопируем скрипт, показанный на изображении ниже, в наш файл Bash. Здесь мы просим пользователя ввести строку, а затем мы сохраняем эту строку в переменной «string» с помощью команды «read». Затем мы проверяем эту строку с помощью оператора «if -z», который будет выполнен, если строка равна нулю. Если это так, этот сценарий предложит пользователю ввести допустимую строку, а затем он распечатает эту строку. Однако, если пользователь вводит допустимую строку в первый раз, то часть сценария «else» будет выполнена.

После запуска этого сценария Bash, когда нам было предложено ввести строку, мы намеренно ввели пустую строку, i.е., мы просто нажали клавишу Enter. Вот почему наш терминал предложил нам ввести допустимую строку, как показано на следующем изображении:

На этот раз мы ввели допустимую строку «hello», и, следовательно, терминал распечатал соответствующее сообщение, как показано на изображении ниже:

Заключение

Эта статья научила вас всем различным методам, с помощью которых вы можете проверить свои строки на нулевое значение, используя флаги «-z» и «-n» с оператором «if». Используя эти флаги, мы можем тестировать любые строки и, следовательно, очень эффективно использовать их в наших скриптах.

Битва за Веснот 1.13.6 Выпущена разработка
Битва за Веснот 1.13.6, выпущенная в прошлом месяце, является шестой разработкой в ​​1.13.x и содержит ряд улучшений, в первую очередь пользовательско...
Как установить League Of Legends на Ubuntu 14.04
Если вы поклонник League of Legends, то это возможность для вас протестировать League of Legends. Обратите внимание, что LOL поддерживается в PlayOnLi...
Установите последнюю версию игры OpenRA Strategy в Ubuntu Linux
OpenRA - это игровой движок Libre / Free Real Time Strategy, воссоздающий ранние игры Westwood, такие как классическая Command & Conquer: Red Alert. Р...