Programare BASH

Bash „dacă -z” și „dacă -n” pentru testarea șirurilor

Bash „dacă -z” și „dacă -n” pentru testarea șirurilor

Instrucțiunea „if” din Bash poate fi utilizată cu parametri diferiți pentru a servi scopuri multiple. Ori de câte ori lucrăm cu șiruri în Bash, este foarte important pentru noi să verificăm dacă un șir este nul sau nu, astfel încât să nu poată provoca nicio problemă în executarea programului nostru. Atât steagurile „-z”, cât și „-n” pot fi folosite împreună cu declarația „if” pentru a testa șirurile și vă vom explica cum se poate face acest lucru în articolul de astăzi.

Notă: Linux Mint 20 este utilizat pentru a testa următoarele exemple.

Metoda de utilizare a Bash „if -z” și „if -n” pentru testarea șirurilor

Pentru a explica utilizarea Bash „dacă -z” și „dacă -n” pentru testarea șirurilor, am dori să vă împărtășim următoarele exemple de scenarii.

Exemplul # 1: Folosirea „if -n” pentru a arăta că un șir este nul

Pentru a arăta că un șir din Bash este nul folosind instrucțiunea „if -n”, vom efectua următorii pași:

Mai întâi, vom crea un fișier Bash în directorul Acasă numit Strings.sh, așa cum se arată în imaginea de mai jos:

După crearea acestui fișier, vom tasta scriptul prezentat în următoarea imagine în fișierul nostru. Ca orice script Bash, prima linie, i.e. „#!/ bin / bash ", este obligatoriu. Apoi am declarat un șir nul numit „nume”. Un șir nul în Bash poate fi declarat prin egalizarea unei variabile la „”. Apoi avem o instrucțiune „dacă” urmată de semnalizatorul „-n”, care returnează adevărat dacă un șir nu este nul. Am folosit acest semnal pentru a testa șirul „nume”, care este nul. Înseamnă că condiția „dacă” nu va fi executată deoarece valoarea steagului „-n” va fi falsă în acest caz. Prin urmare, avem și o parte „else” care va fi executată prin imprimarea unui mesaj pe terminal.

Acum este timpul să executați acest fișier, care se poate face cu comanda prezentată mai jos:

$ bash Strings.SH

Deoarece șirul pe care l-am declarat a fost nul, de aceea partea „else” a scriptului nostru a fost executată și mesajul corespunzător a fost tipărit pe terminal așa cum se arată în următoarea imagine:

Exemplul # 2: Folosirea „if -n” pentru a arăta că un șir nu este nul

Pentru a arăta că un șir din Bash nu este nul folosind instrucțiunea „if -n”, vom efectua următorii pași:

Vom tasta următorul script în fișierul nostru Bash. Singura modificare pe care am făcut-o scriptului pe care l-am creat mai sus pentru acest scenariu este că de data aceasta am atribuit șirului „nume” un nume valid. Înseamnă că șirul nostru nu este nul de data aceasta, ceea ce implică executarea părții „dacă” a scriptului.

Acum rulați din nou scriptul și veți observa că scriptul nostru modificat funcționează exact așa cum am dorit, executând partea „dacă” a scriptului de această dată, așa cum se arată în imaginea de mai jos:

Exemplul # 3: Folosirea „if -z” pentru a arăta că un șir nu este nul

Pentru a arăta că un șir din Bash nu este nul folosind instrucțiunea „dacă -z”, vom efectua următorii pași:

Scenariul pentru acest scenariu este aproape același ca și pentru scenariul discutat mai sus. Am înlocuit doar steagul „-n” cu steagul „-z”, dar de data aceasta, am schimbat și părțile „dacă” și „altfel” din script, deoarece steagul „-z” revine adevărat dacă șirul este nul. Înseamnă că de data aceasta, partea „else” a scriptului va fi executată deoarece șirul nostru nu a fost nul.

Puteți verifica acest lucru executând scriptul pe care tocmai l-ați modificat și veți putea vedea că șirul dvs. nu a fost nul, așa cum se arată în imaginea de mai jos:

Exemplul # 4: Folosind „dacă -z” pentru a arăta că un șir este nul

Pentru a arăta că un șir din Bash este nul folosind instrucțiunea „dacă -z”, vom efectua următorii pași:

Am folosit același script pentru acest scenariu ca și pentru exemplul # 3. Singura modificare pe care am făcut-o acestui script este că am făcut șirul nostru nul atribuindu-i valoarea nulă, așa cum puteți vedea în imaginea de mai jos:

Acum, când rulăm acest script, partea „dacă” a scriptului va fi executată deoarece șirul este nul și, prin urmare, valoarea steagului „-z” va fi adevărată, după cum puteți vedea din următoarea imagine:

Exemplul nr. 5: luarea unui șir de intrare de utilizator și testarea acestuia cu „dacă -z”

Pentru testarea intrării de șir furnizate de utilizator cu instrucțiunea „dacă -z”, vom efectua următorii pași:

Vom copia scriptul prezentat în imaginea de mai jos în fișierul nostru Bash. Aici, îi cerem utilizatorului să introducă un șir și apoi salvăm acel șir în variabila „șir” cu comanda „citit”. Apoi testăm acest șir cu instrucțiunea „dacă -z”, care va fi executată dacă șirul este nul. Dacă acesta va fi cazul, acest script va solicita utilizatorului să introducă un șir valid și apoi va imprima acel șir. Cu toate acestea, dacă utilizatorul introduce pentru prima dată un șir valid, atunci partea „else” a scriptului va fi executată.

După rularea acestui script Bash, când ni s-a solicitat să introducem un șir, am introdus intenționat un șir nul, i.e., pur și simplu am apăsat tasta Enter. De aceea terminalul nostru ne-a cerut să introducem un șir valid, așa cum se arată în următoarea imagine:

De data aceasta am introdus un șir valid „salut” și, prin urmare, terminalul a tipărit mesajul corespunzător așa cum se arată în imaginea de mai jos:

Concluzie

Acest articol v-a învățat toate diferitele metode cu care vă puteți testa șirurile pentru a fi nule sau nu în timp ce utilizați steagurile „-z” și „-n” cu declarația „dacă”. Utilizând aceste semnalizatoare, putem testa orice șiruri și, prin urmare, le putem folosi foarte eficient în scripturile noastre.

How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...