Sådan sammenlignes strenge i Bash

How Compare Strings Bash



Til forskellige programmeringsformål skal vi sammenligne værdien af ​​to strenge. Indbyggede funktioner bruges i mange programmeringssprog til at teste lighed mellem to strenge. Du kan kontrollere lighed og ulighed mellem to strenge i bash ved hjælp af hvis udmelding. == bruges til at kontrollere ligestilling og ! = bruges til at kontrollere strengenes ulighed. Du kan delvist sammenligne værdierne for to strenge også i bash. Hvordan du kan sammenligne strengværdierne i bash vises ved hjælp af forskellige eksempler i denne vejledning.

Eksempel-1: Stringsammenligning ved hjælp af == operatorer

Der er ingen indbygget sammenligningsfunktion til at kontrollere lighed mellem to strengværdier i bash som et andet standard programmeringssprog. I det følgende script to strengvariabler, strval1 og strval2 er erklæret. Egenkapitalen i disse to strengvariabler testes ved hjælp af den første hvis redegørelse for scriptet. Værdien af strval1 sammenlignes med en strengværdi for at kontrollere ligheden i den anden hvis udmelding.







#!/bin/bash

strval1='Ubuntu'
strval2='Windows'

#Kontroller lighed med to strengvariabler

hvis [ $strval1==$ strval2 ];derefter
smed ud 'Strenge er lige'
andet
smed ud 'Strenge er ikke lige'
være

#Kontroller lighed for en variabel med en strengværdi

hvis [ $strval1=='Ubuntu' ];derefter
smed ud 'Linux -operativsystem'
andet
smed ud 'Windows -operativsystem'
være

Produktion:



Første sammenligning er ikke lig, og anden sammenligning er lig.







Eksempel-2: Stringsammenligning ved hjælp af! = Operator

Uligheden mellem to strengvariabler kontrolleres i det følgende eksempel. Her er to værdier ikke ens. Så hvis betingelsen vil være sand og Windows -operativsystem vil udskrive.

#!/bin/bash

strval1='Ubuntu'
strval2='Windows'

#Kontroller uligheden i en variabel med en strengværdi

hvis [ $ strval2 !='Ubuntu' ];derefter
smed ud 'Windows -operativsystem'
andet
smed ud 'Linux -operativsystem'
være

Produktion:



Eksempel-3: Delvis strengsammenligning

Du kan sammenligne delværdi ved at bruge jokertegn i bash -script. I det følgende script, * bruges som jokertegn til delvis matchning. Strengvariablen, strval indeholder ordet Internet. Så den første hvis af scriptet returnerer true og udskrives Delvist match . Bash er store og små bogstaver. For dette, den anden hvis af scriptet returnerer falsk for brug af internet som delvis streng, der ikke er lig med bogstavelig sammenligning.

#!/bin/bash

strval='Microsoft Internet Explorer'

hvis [[ $ strval==*Internet* ]];
derefter
smed ud 'Delvist match'
andet
smed ud 'Intet match'
være

hvis [[ $ strval==*Internet* ]];
derefter
smed ud 'Delvist match'
andet
smed ud 'Intet match'
være

Produktion:

Eksempel-4: Sammenlign streng med brugerinputværdi

Nogle gange er vi nødt til at sammenligne den strengværdi, som brugeren tager med en specifik strengværdi til programmeringsformål. I det følgende eksempel vil en strengdata blive taget fra brugeren som input og sammenligne uligheden af ​​dataene med en fast værdi. Hvis betingelsen er sand, udskrives den Ingen registrering fundet , ellers udskrives den Rekord fundet .

#!/bin/bash

smed ud 'Indtast dit navn'
Læsinput

hvis [ $ input !='Fahmida' ];
derefter
smed ud 'Ingen registrering fundet'
andet
smed ud 'Rekord fundet'
være

Produktion:

Video af denne lektion er her:

Strenge sammenligning opgave i bash vil være lettere for dig efter at have gennemført ovenstående eksempler med klar forståelse.