Strings vergelijken in Bash

How Compare Strings Bash



Voor verschillende programmeerdoeleinden moeten we de waarde van twee strings vergelijken. In veel programmeertalen worden ingebouwde functies gebruikt om de gelijkheid van twee strings te testen. U kunt de gelijkheid en ongelijkheid van twee strings in bash controleren door gebruik te maken van indien uitspraak. == wordt gebruikt om gelijkheid te controleren en ! = wordt gebruikt om de ongelijkheid van de tekenreeksen te controleren. Je kunt de waarden van twee strings ook gedeeltelijk vergelijken in bash. Hoe u de tekenreekswaarden in bash kunt vergelijken, wordt getoond aan de hand van verschillende voorbeelden in deze zelfstudie.

Voorbeeld-1: Stringvergelijking met == operators

Er is geen ingebouwde vergelijkingsfunctie om de gelijkheid van twee tekenreekswaarden in bash te controleren, zoals in andere standaardprogrammeertaal. In het volgende script, twee tekenreeksvariabelen, strval1 en strval2 worden verklaard. De equity van deze twee stringvariabelen wordt getest met de eerste indien verklaring van het script. De waarde van strval1 wordt vergeleken met een tekenreekswaarde om de gelijkheid in de tweede te controleren indien uitspraak.







#!/bin/bash

strval1='Ubuntu'
strval2='Ramen'

#Controleer gelijkheid twee stringvariabelen

indien [ $ strval1==$strval2 ];dan
gooide uit 'Snaren zijn gelijk'
anders
gooide uit 'Snaren zijn niet gelijk'
zijn

#Controleer de gelijkheid van een variabele met een tekenreekswaarde

indien [ $ strval1=='Ubuntu' ];dan
gooide uit 'Linux-besturingssysteem'
anders
gooide uit 'Windows-besturingssysteem'
zijn

Uitgang:



De eerste vergelijking is niet gelijk en de tweede vergelijking is gelijk.







Voorbeeld-2: Stringvergelijking met != operator

De ongelijkheid van twee stringvariabelen wordt gecontroleerd in het volgende voorbeeld. Hier zijn twee waarden niet gelijk. Dus, als de voorwaarde waar is en Windows-besturingssysteem zal afdrukken.

#!/bin/bash

strval1='Ubuntu'
strval2='Ramen'

#Controleer de ongelijkheid van een variabele met een tekenreekswaarde

indien [ $strval2 !='Ubuntu' ];dan
gooide uit 'Windows-besturingssysteem'
anders
gooide uit 'Linux-besturingssysteem'
zijn

Uitgang:



Voorbeeld-3: gedeeltelijke tekenreeksvergelijking

U kunt gedeeltelijke waarde vergelijken door jokertekens in bash-script te gebruiken. In het volgende schrift, * wordt gebruikt als jokerteken voor gedeeltelijke matching. De stringvariabele, strval bevat het woord internetten. Dus de eerste indien van het script retourneert true en print Gedeeltelijk overeenkomen . Bash is hoofdlettergevoelig. Hiervoor is de tweede indien van het script zal false retourneren voor het gebruik van internet als gedeeltelijke tekenreeks die niet gelijk is aan een lettergewijze vergelijking.

#!/bin/bash

strval='Microsoft Internet Explorer'

indien [[ $ strval==*internet* ]];
dan
gooide uit 'Gedeeltelijk overeenkomen'
anders
gooide uit 'Geen match'
zijn

indien [[ $ strval==*internet* ]];
dan
gooide uit 'Gedeeltelijk overeenkomen'
anders
gooide uit 'Geen match'
zijn

Uitgang:

Voorbeeld-4: string vergelijken met gebruikersinvoerwaarde

Soms moeten we de door de gebruiker genomen stringwaarde vergelijken met een specifieke stringwaarde voor programmeerdoeleinden. In het volgende voorbeeld wordt een string-gegevens van de gebruiker genomen als invoer en wordt de ongelijkheid van de gegevens vergeleken met een vaste waarde. Als de voorwaarde waar is, wordt deze afgedrukt Geen record gevonden , anders wordt het afgedrukt Record gevonden .

#!/bin/bash

gooide uit 'Vul uw naam in'
lezeninvoer

indien [ $invoer !='Fahmida' ];
dan
gooide uit 'Geen record gevonden'
anders
gooide uit 'Record gevonden'
zijn

Uitgang:

Video van deze les is hier:

Stringvergelijkingstaak in bash zal gemakkelijker voor u zijn nadat u de bovenstaande voorbeelden met duidelijk begrip hebt voltooid.