Skip to main content

Beginners Guide til BASH - Sammenligning af ting

PHP Tutorials | PHP For Beginners (April 2025)

PHP Tutorials | PHP For Beginners (April 2025)
Anonim
01 af 08

Beginners Guide til BASH - Sammenligning af ting

I den foregående del af BASH-tutorialet kiggede vi på betingede udsagn.

Denne vejledning var meget lang, men viste virkelig kun, hvordan man styrede strømmen af ​​logik. Denne vejledning viser de forskellige måder, hvorpå du kan sammenligne variabler.

Ovenstående billede viser det første eksempel i denne uges guide:

#! / Bin / bashnavn1 = "gary"navn2 = "bob"hvis "$ name1" = "$ name2"derefter ekko "navnene matcher"andet ekko "navnene stemmer ikke overens"fi

I ovenstående script har jeg defineret to variabler kaldet navn1 og navn2 og tildelt dem værdierne "gary" og "bob". Da variablerne er indeholdt mellem citatmærker, kaldes de strengvariabler, som bliver mere relevante, da vejledningen fortsætter.

Alt scriptet sammenligner værdien af ​​$ name1 og $ name2, og hvis de matcher output, strengen "navnene matcher" og hvis de ikke udsender strengen "navnene stemmer ikke overens".

Citatmærkerne omkring $ name1 og $ name2-variablerne er vigtige, fordi hvis værdien af ​​en af ​​dem ikke er indstillet, vil scriptet stadig fungere.

For eksempel hvis $ name1 aldrig blev sat så ville du sammenligne "" med "bob". Uden citatmærkerne ville du være tilbage med = "bob", der klart mislykkes.

Du kan også bruge! = Notationen til at definere ikke lig med følgende:

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

Begyndervejledning til BASH - Sammenligning af strenge

I ovenstående eksempel sammenligner testen de samme to strenge og spørger spørgsmålet, at gary kommer før bob i alfabetet?

Det er klart, at svaret er nej.

Skriptet introducerer mindre end operatøren (<). Da den mindre end operatøren også bruges til omdirigering, skal du undslippe den med et skråstreg () for at det betyder mindre end hvorfor jeg sammenlignede "$ name1" <"$ name2" i scriptet ovenfor.

Det modsatte af mindre end er naturligvis større end. I stedet for at bruge <use >.

For eksempel

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

Begyndervejledning til BASH - Sammenligning af strenge

Hvis du vil teste om en variabel har en værdi, kan du bruge følgende test:

hvis -n $ name2

I scriptet ovenfor har jeg testet om $ name2 har fået en værdi, og hvis det ikke er meddelelsen "Der er ingen bob, var der aldrig en bob".

04 af 08

Begyndervejledning til BASH - Sammenligning af strenge

På det sidste billede dækkede vi, om en variabel er blevet indstillet eller ej. Nogle gange kan en variabel være blevet indstillet, men det kan ikke have en værdi.

For eksempel:

name1 = ""

For at teste om en variabel har en værdi eller ej (dvs. har en længde på nul), brug -z som følger:

hvis -z $ name1

I ovenstående script har jeg angivet $ name1 til en nul længde streng og derefter sammenlignet det med -z. Hvis $ name1 er nul i længden, vil meddelelsen "gary gå ud til aftenen" blive vist.

05 af 08

Begyndervejledning til BASH - Sammenligning af tal

Hidtil har alle sammenligningerne været for strenge. Hvad med at sammenligne tal?

Ovenstående script viser et eksempel på at sammenligne to tal:

#! / Bin / basha = 4b = 5hvis $ a = $ bderefter ekko "4 = 5"andet ekko "4 svarer ikke til 5"fi

Hvis du vil indstille en variabel til at være et tal, skal du blot angive det uden anførselstegn. Du kan derefter sammenligne tallene med et lige-tegn.

Jeg foretrækker dog at bruge følgende operatør til at sammenligne to tal:

Hvis $ a-eq $ b 06 af 08

Begyndervejledning til BASH - Sammenligning af tal

Hvis du vil sammenligne, om et tal er mindre end et andet nummer, kan du bruge den mindre end operatøren (<). Som med strenge skal du undslippe de mindre end operatøren med et skråstreg. ( <).

En bedre måde at sammenligne tal på er at bruge følgende notation i stedet:

  • Mindre end -lt
  • Mindre end eller lig med -le
  • Større end -gt
  • Større end eller lig med -ge

For eksempel:

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

Begyndervejledning til BASH - Sammenligning af tal

Endelig for denne vejledning, hvis du vil teste om to tal er forskellige, kan du bruge enten mindre end og større end operatører sammen (<>) eller -ne som følger:

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

Beginners Guide til BASH - Sammenligning Operatører - Sammenfatning

Hvis du har gået glip af de første tre dele af denne vejledning, kan du finde dem ved at klikke på følgende links:

  • Hej Verden
  • Input Parametre
  • Betingelser og variabler

I den næste del af guiden vil jeg dække aritmetik.