Cum se compară șirurile în Bash

How Compare Strings Bash



În scopuri diferite de programare, trebuie să comparăm valoarea a două șiruri. Funcțiile încorporate sunt utilizate în multe limbaje de programare pentru a testa egalitatea a două șiruri. Puteți verifica egalitatea și inegalitatea a două șiruri în bash folosind dacă afirmație. == este folosit pentru a verifica egalitatea și ! = este folosit pentru a verifica inegalitatea șirurilor. Puteți compara parțial valorile a două șiruri și în bash. Cum puteți compara valorile șirurilor din bash este prezentat folosind diferite exemple în acest tutorial.

Exemplu-1: Comparație de șiruri folosind operatori ==

Nu există nicio funcție de comparație încorporată pentru a verifica egalitatea a două valori de șiruri în bash ca și alte limbaje de programare standard. În următorul script, două variabile șir, strval1 și strval2 sunt declarate. Echitatea acestor două variabile șir este testată folosind prima dacă declarația scenariului. Valoarea a strval1 este comparat cu o valoare șir pentru a verifica egalitatea în al doilea dacă afirmație.







#! / bin / bash

strval1=„Ubuntu”
strval2=„Windows”

# Verificați egalitatea a două variabile șir

dacă [ $ strval1==$ strval2 ];atunci
aruncat „Șirurile sunt egale”
altceva
aruncat „Șirurile nu sunt egale”
fi

# Verificați egalitatea unei variabile cu o valoare șir

dacă [ $ strval1==„Ubuntu” ];atunci
aruncat „Sistem de operare Linux”
altceva
aruncat „Sistem de operare Windows”
fi

Ieșire:



Prima comparație nu este egală și a doua comparație este egală.







Exemplul-2: Comparație de șiruri folosind operatorul! =

Inegalitatea a două variabile șir este verificată în exemplul următor. Aici două valori nu sunt egale. Deci, dacă condiția va fi adevărată și Sistem de operare Windows va imprima.

#! / bin / bash

strval1=„Ubuntu”
strval2=„Windows”

# Verificați inegalitatea unei variabile cu o valoare șir

dacă [ $ strval2 !=„Ubuntu” ];atunci
aruncat „Sistem de operare Windows”
altceva
aruncat „Sistem de operare Linux”
fi

Ieșire:



Exemplul-3: Comparație parțială de șiruri

Puteți compara valoarea parțială utilizând caracterul wild card în scriptul bash. În scriptul următor, * este folosit ca caracter wild card pentru potrivirea parțială. Variabila șir, strval conține cuvântul Internet. Deci, primul dacă a scriptului va reveni adevărat și va fi tipărit Parțial se potrivesc . Bash este sensibil la majuscule și minuscule. Pentru aceasta, a doua dacă din script va returna fals pentru utilizarea internetului ca șir parțial, care nu este egal prin comparație literară.

#! / bin / bash

strval=„Microsoft Internet Explorer”

dacă [[ $ strval==*Internet* ]];
atunci
aruncat „Potrivire parțială”
altceva
aruncat 'Nu se potrivesc'
fi

dacă [[ $ strval==*Internet* ]];
atunci
aruncat „Potrivire parțială”
altceva
aruncat 'Nu se potrivesc'
fi

Ieșire:

Exemplu-4: Comparați șirul cu valoarea de intrare a utilizatorului

Uneori, trebuie să comparăm valoarea șirului luată de utilizator cu valoarea șirului specifică în scopul programării. În exemplul următor, un șir de date va fi preluat de la utilizator ca intrare și va compara inegalitatea datelor cu o valoare fixă. Dacă condiția este adevărată, se va imprima nicio inregistrare gasita , altfel se va imprima Record găsit .

#! / bin / bash

aruncat 'Introdu numele tau'
cititintrare

dacă [ $ input !=„Fahmida” ];
atunci
aruncat 'Nicio inregistrare gasita'
altceva
aruncat „Înregistrare găsită”
fi

Ieșire:

Videoclipul acestei lecții este aici:

Sarcina de comparare a șirurilor în bash vă va fi mai ușoară după ce ați completat exemplele de mai sus cu o înțelegere clară.