Primerjava nizov v Bashu

How Compare Strings Bash



Za različne namene programiranja moramo primerjati vrednost dveh nizov. Vgrajene funkcije se uporabljajo v mnogih programskih jezikih za preverjanje enakosti dveh nizov. Enakost in neenakost dveh nizov v bashu lahko preverite z uporabo če izjavo. == se uporablja za preverjanje enakosti in ! = se uporablja za preverjanje neenakosti nizov. Vrednosti dveh nizov lahko delno primerjate tudi v bashu. Kako lahko primerjate vrednosti niza v bash, je prikazano z različnimi primeri v tej vadnici.

Primer-1: Primerjava nizov z operaterji ==

Ni vgrajene primerjalne funkcije za preverjanje enakosti dveh vrednosti niza v bashu, tako kot drugi standardni programski jezik. V naslednjem skriptu sta dve spremenljivki niza, strval1 in strval2 so razglašeni. Lastniški kapital teh dveh nizovnih spremenljivk se preizkusi s prvo če izjavo o scenariju. Vrednost strval1 primerjamo z vrednostjo niza, da preverimo enakost v drugem če izjavo.







#!/bin/bash

strval1='Ubuntu'
strval2='Windows'

#Preverite enakost dveh nizovnih spremenljivk

če [ $ strval1==$ strval2 ];potem
vrgel ven 'Strune so enake'
drugače
vrgel ven 'Nizki niso enaki'
biti

#Preverite enakost spremenljivke z vrednostjo niza

če [ $ strval1=='Ubuntu' ];potem
vrgel ven 'Operacijski sistem Linux'
drugače
vrgel ven 'Operacijski sistem Windows'
biti

Izhod:



Prva primerjava ni enaka, druga pa enaka.







Primer 2: Primerjava nizov z uporabo operatorja! =

Neenakost dveh spremenljivk niza se preveri v naslednjem primeru. Tu dve vrednosti nista enaki. Torej, če bo pogoj resničen in Operacijski sistem Windows bo natisnil.

#!/bin/bash

strval1='Ubuntu'
strval2='Windows'

#Preverite neenakost spremenljivke z vrednostjo niza

če [ $ strval2 !='Ubuntu' ];potem
vrgel ven 'Operacijski sistem Windows'
drugače
vrgel ven 'Operacijski sistem Linux'
biti

Izhod:



Primer 3: Delna primerjava nizov

Delne vrednosti lahko primerjate z uporabo nadomestnega znaka v bash skriptu. V naslednjem scenariju * se uporablja kot nadomestni znak za delno ujemanje. Spremenljivka niza, strval vsebuje besedo Internet. Torej, prvi če skripta vrne true in natisne Delno ujemanje . Bash razlikuje velike in male črke. Za to drugi če skripta bo vrnil false za uporabo interneta kot delnega niza, ki po črkovni primerjavi ni enak.

#!/bin/bash

strval='Microsoft Internet Explorer'

če [[ $ strval==*Internet* ]];
potem
vrgel ven 'Delno ujemanje'
drugače
vrgel ven 'Ni ujemanj'
biti

če [[ $ strval==*Internet* ]];
potem
vrgel ven 'Delno ujemanje'
drugače
vrgel ven 'Ni ujemanj'
biti

Izhod:

Primer 4: Primerjajte niz z uporabniško vnešeno vrednostjo

Včasih moramo primerjati vrednost niza, ki jo je sprejel uporabnik, s posebno vrednostjo niza za namene programiranja. V naslednjem primeru bodo nizovi podatki vzeti od uporabnika kot vhodni podatki in primerjali neenakost podatkov s fiksno vrednostjo. Če je pogoj resničen, se natisne Ni zapisa , sicer se natisne Zapis je bil najden .

#!/bin/bash

vrgel ven 'Vnesite svoje ime'
prebrativnos

če [ $ vnos !='Fahmida' ];
potem
vrgel ven 'Ni zapisa'
drugače
vrgel ven 'Zapis je bil najden'
biti

Izhod:

Video posnetek te lekcije je tukaj:

Naloga za primerjavo nizov v bashu vam bo lažja, če boste zgornje primere izpolnili z jasnim razumevanjem.