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/bashstrval1='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/bashstrval='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/bashgooide 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.