Skip to main content

Beginners Guide to BASH - Sammenligning av ting

Breathedge How to get Food, Water and Survive (April 2025)

Breathedge How to get Food, Water and Survive (April 2025)
Anonim
01 av 08

Beginners Guide to BASH - Sammenligning av ting

I den forrige delen av BASH-opplæringen så vi på betingede uttalelser.

Den guiden var veldig lang, men viste egentlig bare hvordan man kontrollerte strømmen av logikk. Denne veiledningen viser de forskjellige måtene du kan sammenligne variabler med.

Ovennevnte bilde viser det første eksemplet i denne ukens guide:

#! / Bin / bashname1 = "Gary"navn2 = "bob"hvis "$ name1" = "$ name2"deretter ekko "navnene matcher"ellers ekko "navnene stemmer ikke overens"fi

I det ovennevnte skriptet har jeg definert to variabler kalt navn1 og navn2 og tildelt dem verdiene "gary" og "bob". Som variablene er inneholdt mellom anførselstegn kalles de strengvariabler som blir mer relevante ettersom opplæringen fortsetter.

Alt skriptet gjør er å sammenligne verdien av $ name1 og $ name2, og hvis de matcher utdata, strengen "navnene samsvarer" og hvis de ikke sender ut strengen "navnene stemmer ikke overens".

Anførselstegnene rundt $ name1 og $ name2-variablene er viktige fordi hvis verdien av en av dem ikke er satt, vil skriptet fortsatt fungere.

For eksempel hvis $ name1 aldri ble satt så ville du sammenligne "" med "bob". Uten anførselstegn vil du være igjen med = "bob" som tydeligvis mislykkes.

Du kan også bruke! = Notasjonen til å definere ikke lik som følger:

hvis "$ name1"! = "$ name2" 02 av 08

Beginners Guide To BASH - Sammenligne Strings

I eksemplet ovenfor sammenligner testen de samme to strengene og spørsmålet kommer gary før bob i alfabetet?

Klart er svaret nei.

Skriptet introduserer mindre enn operatøren (<). Siden den mindre enn operatøren også brukes til omadressering, må du unnslippe den med et skråstrek () for at det betyr mindre enn det som er grunnen til at jeg sammenlignet "$ name1" <"$ name2" i skriptet ovenfor.

Det motsatte av mindre enn er åpenbart større enn. I stedet for å bruke <use >.

For eksempel

hvis "$ name1" > "$ name2" 03 av 08

Beginners Guide To BASH - Sammenligne Strings

Hvis du vil teste om en variabel har en verdi, kan du bruke følgende test:

hvis -n $ name2

I skriptet ovenfor har jeg testet om $ name2 har blitt gitt en verdi, og hvis det ikke er meldingen "Det er ingen bob, det oppstod aldri en bob".

04 av 08

Beginners Guide To BASH - Sammenligne Strings

På det siste lyset dekket vi om en variabel er satt eller ikke. Noen ganger kan det hende at en variabel har blitt satt, men det kan ikke faktisk ha en verdi.

For eksempel:

name1 = ""

For å teste om en variabel har en verdi eller ikke (dvs. har en lengde på null), bruk -z som følger:

hvis -z $ name1

I det ovennevnte skriptet har jeg satt $ name1 til en null lengdesnor og deretter sammenlignet den med -z. Hvis $ name1 er null i lengden, vises meldingen "gary har gått ut på kvelden".

05 av 08

Nybegynnere Guide til BASH - Sammenligning av tall

Så langt har alle sammenligningene vært for strenge. Hva med å sammenligne tall?

Ovennevnte skript viser et eksempel på å sammenligne to tall:

#! / Bin / basha = 4-b = 5hvis $ a = $ bderetter ekko "4 = 5"ellers ekko "4 er ikke like 5"fi

For å angi en variabel for å være et nummer, sett det enkelt uten anførselstegn. Du kan da sammenligne tallene med et like tegn.

Jeg foretrekker imidlertid å bruke følgende operatør for å sammenligne to tall:

Hvis $ a-eq $ b 06 av 08

Nybegynnere Guide til BASH - Sammenligning av tall

Hvis du vil sammenligne om et tall er mindre enn et annet nummer, kan du bruke mindre enn operatøren (<). Som med strenger må du unnslippe den mindre enn operatøren med en skråstrek. ( <).

En bedre måte å sammenligne tall på er å bruke følgende notering i stedet:

  • Mindre enn -lt
  • Mindre enn eller lik -le
  • Større enn -gt
  • Større enn eller lik -ge

For eksempel:

hvis $ a-lt $ bhvis $ a -le $ bhvis $ a -ge $ bhvis $ a -gt $ b 07 av 08

Nybegynnere Guide til BASH - Sammenligning av tall

Til slutt for denne veiledningen, hvis du vil teste om to tall er forskjellige, kan du enten bruke mindre enn og større enn operatørene sammen (<>) eller -ne som følger:

hvis $ a <> $ bhvis $ a -ne $ b 08 av 08

Nybegynnere Guide til BASH - Sammenligning Operatører - Sammendrag

Hvis du har gått glipp av de tre første delene av denne guiden, kan du finne dem ved å klikke på følgende lenker:

  • Hei Verden
  • Inngangsparametere
  • Betingelser og variabler

I den neste delen av guiden vil jeg dekke regningen.