Algajad BASHi juhendamiseks - asjade võrdlemine

01 08

Algajad BASHi juhendamiseks - asjade võrdlemine

BASH juhendaja - stringide võrdlemine.

BASHi õpetuse eelmises osas vaadeldi tingimuslikke avaldusi .

See juhend oli väga pikk, kuid tõesti näitas vaid, kuidas kontrollida loogika voogu. See juhend näitab erinevaid viise, kuidas saate muutujaid võrrelda.

Eespool toodud pilt näitab selle nädala juhendi esimest näidet:

#! / bin / bash

name1 = "gary"
name2 = "bob"

kui ["$ name1" = "$ name2"]
siis
echo "nimed sobivad"
muidu
echo "nimed ei sobi"
fi


Ülaltoodud skriptis olen määratlenud kaks muutujat nimega name1 ja name2 ja omistanud neile väärtused "gary" ja "bob". Kuna muutujad sisalduvad jutumärkide vahel, nimetatakse neid stringi muutujateks, mis muutub juhendamisel lähemal.

Kogu skript võrdleb $ name1 ja $ name2 väärtust ning kui need vastavad väljundi stringile "nimede sobitamine" ja kui nad ei väljasta stringi "nimed ei sobi kokku".

Jaotises $ name1 ja $ name2 olevad jutumärgid on olulised, sest kui mõlema väärtust pole määratud, siis skript ikkagi töötab.

Näiteks kui $ name1 ei ole kunagi seatud, siis oleksite "" võrrelda "bobiga". Ilma jutumärkideta oleks jäetud = "bob", mis ilmselgelt ebaõnnestub.

Võite kasutada ka! = Märki, et määratleda mitte võrdseks järgmiselt:

kui ["$ name1"! = "$ name2"]

02 of 08

Algajad juhend BASH - Stringide võrdlemine

BASH juhendaja - stringide võrdlemine.

Eespool toodud näites võrreldakse testiga samu kahte stringi ja küsib, kas küsimus on täidetud tähestikus enne bobit?

On selge, et vastus on mitte.

Skript tutvustab vähem kui operaator (<). Kuna redirection'is kasutatakse ka vähem kui operaatorit, peate selle pääseda kaldkriipsuga (\), et see tähendaks vähem, mis on sellepärast, et eespool skriptis võrreldi "$ name1" \ <"$ name2".

Vastupidi vähem kui on ilmselt suurem kui. Selle asemel, et kasutada \ .

Näiteks

kui ["$ name1" \> "$ name2"]

03 alates 08

Algajad juhend BASH - Stringide võrdlemine

BASH juhendaja - stringide võrdlemine.

Kui soovite testida, kas muutuja väärtus on, võite kasutada järgmist testi:

kui [-n $ name2]

Ülaltoodud skriptis olen katsetanud, kas $ name2-le on antud väärtus ja kui see ei näita sõnumit "BOB-i pole, pole kunagi ilmutatud bobit".

04 08

Algajad juhend BASH - Stringide võrdlemine

BASH juhendaja - stringide võrdlemine.

Varasemas slaidil jälgisime, kas muutuja on määratud või mitte. Mõnikord on muutuja võimalik, kuid see võib olla väärtus.

Näiteks:

nimi1 = ""

Selleks, et kontrollida, kas muutuja väärtus on või mitte (st on null pikk), kasutage -z järgmiselt:

kui [-z $ name1]

Ülaltoodud skriptis olen määranud $ name1 nulli pikkusele stringile ja seejärel võrdlesin seda kasutades -z-i. Kui $ name1 on null pikk, kuvatakse teade "gary on õhtul välja läinud".

05 08

Algajatele BASHi juhend - numbrite võrdlemine

BASH juhendaja - numbrite võrdlemine.

Seni on kõik võrdlused olnud stringide jaoks. Kuidas võrrelda numbreid?

Eespool toodud skript näitab kahe numbri võrdlemist:

#! / bin / bash

a = 4
b = 5

kui [$ a = $ b]
siis
kaja "4 = 5"
muidu
echo "4 ei võrdu 5"
fi

Muutuja määramiseks arvuks lihtsalt määrake see ilma jutumärkideta. Seejärel võite võrrelda numbreid võrdse märgiga.

Eelistatav on aga kahe numbri võrdlemiseks kasutada järgmist operaatorit:

Kui [$ a -eq $ b]

06 08

Algajatele BASHi juhend - numbrite võrdlemine

BASH juhendaja - numbrite võrdlemine.

Kui soovite võrrelda, kas number on vähem kui teine ​​number, võite kasutada vähem kui operaator (<). Nagu stringide puhul, peate pääseda ka kitsa servaga vähem kui operaator. (\ <).

Parem viis numbrite võrdlemiseks on selle asemel kasutada järgmist märget:

Näiteks:

kui [$ a -lt $ b]

kui [$ a -le $ b]

kui [$ a -ge $ b]

kui [$ a -gt $ b]

07 08

Algajatele BASHi juhend - numbrite võrdlemine

BASH juhendaja - numbrite võrdlemine.

Lõpuks selle juhendi jaoks, kui soovite testida, kas kaks numbrit on erinevad, saate kasutada kas operaatorite väiksemat või rohkem (<>) või -n järgmiselt:

kui [$ a <> $ b]

kui [$ a -ne $ b]

08 08

Algajate juhend BASH - võrdlusoperaatoritele - kokkuvõte

Kui olete selle juhendi esimesed kolm osa vahele jätnud, leiate neid, klõpsates järgmisi linke:

Järgnevas juhendis käsitletakse aritmeetikat.