Програмиране на 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 е нулев, използвайки израза „if -n“, ще изпълним следните стъпки:

Първо, ще създадем Bash файл в нашата начална директория, наречена Strings.sh, както е показано на изображението по-долу:

След създаването на този файл ще напишем скрипта, показан на следващото изображение в нашия файл. Както всеки скрипт на Bash, първият ред, т.е.д. „#!/ bin / bash, ”е задължително. След това декларирахме нулев низ с име „name“. Нулев низ в Bash може да бъде деклариран чрез изравняване на променлива на “”. Тогава имаме оператор „if“, последван от флага „-n“, който връща true, ако низ не е null. Използвахме този флаг, за да тестваме нашия низ „име“, който е нула. Това означава, че условието "ако" няма да бъде изпълнено, тъй като стойността на флага "-n" в този случай ще бъде невярна. Следователно имаме и „else“ част, която ще бъде изпълнена чрез отпечатване на съобщение на терминала.

Сега е време да изпълним този файл, което може да се направи с командата, показана по-долу:

$ bash низове.ш

Тъй като низът, който декларирахме, беше нулев, ето защо частта „else“ на нашия скрипт беше изпълнена и съответното съобщение беше отпечатано на терминала, както е показано на следното изображение:

Пример # 2: Използване на „if -n“, за да покажете, че даден низ не е Null

За да покажем, че низ в Bash не е нулев, използвайки израза „if -n“, ще изпълним следните стъпки:

Ще напишем следния скрипт в нашия Bash файл. Единствената промяна, която сме направили в скрипта, който създадохме по-горе за този сценарий, е, че този път сме присвоили на низа „name“ валидно име. Това означава, че този път нашият низ не е нула, което означава, че частта от „ако“ на скрипта трябва да бъде изпълнена.

Сега стартирайте скрипта за пореден път и ще забележите, че нашият модифициран скрипт работи точно както сме искали, като изпълним частта „ако“ от скрипта този път, както е показано на изображението по-долу:

Пример # 3: Използване на „if -z“, за да се покаже, че даден низ не е Null

За да покажем, че низът в Bash не е нулев, използвайки израза „if -z“, ще изпълним следните стъпки:

Сценарият за този сценарий е почти същият като за сценария, обсъден по-горе. Ние сме заменили само флага „-n“ с флага „-z“, но този път сме сменили и частите „if“ и „else“ на скрипта, тъй като флагът „-z“ връща true, ако низът е нула. Това означава, че този път частта от скрипта „else“ ще бъде изпълнена, защото низа ни не е нула.

Можете да проверите това, като стартирате току-що модифицирания скрипт и ще можете да видите, че вашият низ не е нулев, както е показано на изображението по-долу:

Пример # 4: Използване на „if -z“, за да покажете, че даден низ е нула

За да покажем, че низ в Bash е нулев, използвайки израза „if -z“, ще изпълним следните стъпки:

Използвахме същия скрипт за този сценарий, както при пример 3. Единствената промяна, която направихме в този скрипт, е, че сме направили нашия низ нулев, като му присвоим нулевата стойност, както можете да видите на изображението, показано по-долу:

Сега, когато стартираме този скрипт, частта от скрипта „if“ ще бъде изпълнена, тъй като низът е нула и следователно стойността на флага „-z“ ще бъде вярна, както можете да видите от следното изображение:

Пример # 5: Вземане на въвеждане от потребител на низ и тестване с “if -z”

За тестване на низовия вход, предоставен от потребителя с израза „if -z“, ще изпълним следните стъпки:

Ще копираме скрипта, показан на изображението по-долу, в нашия Bash файл. Тук ние искаме от потребителя да въведе низ и след това записваме този низ в променливата „низ“ с командата „четене“. След това тестваме този низ с израза „if -z“, който ще бъде изпълнен, ако низът е нулев. Ако случаят е такъв, този скрипт ще подкани потребителя да въведе валиден низ и след това ще отпечата този низ. Ако обаче потребителят въведе валиден низ за първи път, тогава ще бъде изпълнена частта „else“ на скрипта.

След като стартирахме този Bash скрипт, когато бяхме подканени да въведем низ, умишлено въведохме нулев низ, i.д., просто натиснахме клавиша Enter. Ето защо нашият терминал ни подкани да въведем валиден низ, както е показано на следното изображение:

Този път въведохме валиден низ „здравей“ и следователно терминалът отпечата съответното съобщение, както е показано на изображението по-долу:

Заключение

Тази статия ви научи на всички различни методи, с които можете да тествате низовете си за нула или не, докато използвате флаговете „-z“ и „-n“ с израза „if“. Използвайки тези флагове, можем да тестваме всякакви низове и следователно да ги използваме много ефективно в нашите скриптове.

Как да обърнете посоката на превъртане на мишката и тъчпада в Windows 10
Мишка и Тъчпадs не само правят изчисленията лесни, но и по-ефективни и отнемат по-малко време. Не можем да си представим живот без тези устройства, но...
Как да промените курсора на мишката и размера на курсора, цвета и схемата в Windows 10
Показалецът на мишката и курсорът в Windows 10 са много важни аспекти на операционната система. Това може да се каже и за други операционни системи, т...
Безплатни и игри с отворен код за разработване на Linux игри
Тази статия ще обхване списък с безплатни двигатели за игри с отворен код, които могат да се използват за разработване на 2D и 3D игри на Linux. Същес...