Hur man jämför strängar i Bash

How Compare Strings Bash



För olika programmeringsändamål måste vi jämföra värdet på två strängar. Inbyggda funktioner används i många programmeringsspråk för att testa likheten mellan två strängar. Du kan kontrollera jämlikhet och ojämlikhet mellan två strängar i bash genom att använda om påstående. == används för att kontrollera jämlikhet och ! = används för att kontrollera strängarnas ojämlikhet. Du kan delvis jämföra värdena för två strängar också i bash. Hur du kan jämföra strängvärdena i bash visas med hjälp av olika exempel i den här självstudien.

Exempel 1: Strängjämförelse med == operatorer

Det finns ingen inbyggd jämförelsesfunktion för att kontrollera likhet mellan två strängvärden i bash som andra vanliga programmeringsspråk. I följande skript, två strängvariabler, strval1 och strval2 deklareras. Kapitalet i dessa två strängvariabler testas med den första om uttalande av manuset. Värdet av strval1 jämförs med ett strängvärde för att kontrollera likheten i den andra om påstående.







#!/bin/bash

strval1='Ubuntu'
strval2='Windows'

#Kontrollera likvärdighet två strängvariabler

om [ $ strval1==$ strval2 ];sedan
kastade ut 'Strängar är lika'
annan
kastade ut 'Strängar är inte lika'
vara

#Kontrollera likvärdigheten för en variabel med ett strängvärde

om [ $ strval1=='Ubuntu' ];sedan
kastade ut 'Linux -operativsystem'
annan
kastade ut 'Windows -operativsystem'
vara

Produktion:



Första jämförelsen är inte lika och den andra jämförelsen är lika.







Exempel 2: Strängjämförelse med! = Operator

Ojämlikheten mellan två strängvariabler kontrolleras i följande exempel. Här är två värden inte lika. Så, om villkoret kommer att vara sant och Windows operativsystem kommer att skriva ut.

#!/bin/bash

strval1='Ubuntu'
strval2='Windows'

#Kontrollera ojämlikheten i en variabel med ett strängvärde

om [ $ strval2 !='Ubuntu' ];sedan
kastade ut 'Windows -operativsystem'
annan
kastade ut 'Linux -operativsystem'
vara

Produktion:



Exempel-3: Delvis strängjämförelse

Du kan jämföra delvärde genom att använda jokertecken i bash -skript. I följande skript, * används som jokertecken för partiell matchning. Strängvariabeln, strval innehåller ordet Internet. Så det första om av skriptet kommer att returnera true och skrivas ut Matcha delvis . Bash är skiftlägeskänsligt. För detta, den andra om av skriptet kommer att returnera falskt för att använda internet som partiell sträng som inte är lika med bokstavsmässig jämförelse.

#!/bin/bash

strval='Microsoft Internet Explorer'

om [[ $ strval==*Internet* ]];
sedan
kastade ut 'Delvis matchning'
annan
kastade ut 'Ingen match'
vara

om [[ $ strval==*Internet* ]];
sedan
kastade ut 'Delvis matchning'
annan
kastade ut 'Ingen match'
vara

Produktion:

Exempel-4: Jämför sträng med användarinmatningsvärde

Ibland måste vi jämföra strängvärdet som användaren tar med ett specifikt strängvärde för programmeringsändamål. I följande exempel kommer en strängdata att tas från användaren som inmatning och jämföras ojämlikheten i data med ett fast värde. Om villkoret är sant kommer det att skrivas ut Inget rekord funnet annars skrivs den ut Rekord hittat .

#!/bin/bash

kastade ut 'Ange ditt namn'
läsainmatning

om [ $ input !='Fahmida' ];
sedan
kastade ut 'Inget rekord funnet'
annan
kastade ut 'Rekord hittat'
vara

Produktion:

Video av lektionen finns här:

Strängjämförelseuppgift i bash blir lättare för dig efter att ha slutfört ovanstående exempel med tydlig förståelse.