01 08
Algajad BASHi juhendamiseks - asjade 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
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
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
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
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 = 5kui [$ 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
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:
- Vähem kui -lt
- Vähem või võrdne-lo
- Suurem kui -gt
- Suurem kui või võrdne -ge
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
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.