01 od 08
Vodič za početnike BASH - upoređivanje stvari
U prethodnom dijelu BASH tutoriala pogledali smo uslovne izjave .
Taj vodič je bio veoma dug, ali stvarno je samo pokazao kako kontrolisati tok logike. Ovaj vodič pokazuje različite načine na koje možete upoređivati varijable.
Gornja slika prikazuje prvi primer u vodiču ove sedmice:
#! / bin / bash
name1 = "Gary"
name2 = "bob"ako je ["$ name1" = "$ name2"]
onda
echo "imena se podudaraju"
drugo
echo "imena se ne podudaraju"
fi
U gornjem skriptu sam definisao dve varijable nazvane name1 i name2 i dodijelili im vrijednosti "gary" i "bob". Pošto su varijable sadržane između znakova citata, one se nazivaju string promenljive koje postaju relevantnije dok se tutorijal nastavlja.
Sva skripta je upoređivanje vrijednosti $ name1 i $ name2 i ako se podudaraju sa rezultatom stringa "imena se podudaraju" i ako ne izlaze string "imena se ne podudaraju".
Navodi o nazivima $ name1 i $ name2 varijable su važne, jer ako vrijednost bilo koje od njih nije postavljena, skripta će i dalje raditi.
Na primjer, ako $ name1 nije nikada postavljen, onda biste upoređivali sa "bobom". Bez natpisa biće vam ostavljeno = "bob" što očito ne uspije.
Takođe možete koristiti oznaku! = Za definisanje nejednakog na sljedeći način:
ako je ["$ name1"! = "$ name2"]
02 od 08
Vodič za početnike BASH - upoređivanje žica
U prethodnom primeru test upoređuje iste dve žice i postavlja pitanje da li Gary dolazi pre bobova u abecedi?
Jasno je da je odgovor ne.
Skripta predstavlja manje od operatora (<). Pošto se operater manji od operatera koristi i za preusmeravanje, moraš da ga izbegneš sa kosom (\) da bi to značilo manje nego što je razlog zašto sam u gornjoj skripti uporedio "$ name1" \ <"$ name2".
Suprotno od manje nego što je očigledno veće od. Umjesto da koristite \
Na primjer
ako je ["$ name1" \> "$ name2"]
03 od 08
Vodič za početnike BASH - upoređivanje žica
Ako želite da testirate da li varijabla ima vrijednost možete koristiti sljedeći test:
ako je [-n $ name2]
U gornjoj skripti sam proverio da li je $ name2 data vrijednost i ako ne postoji poruka "Ne postoji bob, nikada se nije pojavio bob".
04 od 08
Vodič za početnike BASH - upoređivanje žica
Na prošlom slajdu smo obradili da li je promenljiva postavljena ili ne. Ponekad je mada promenljiva možda bila postavljena, ali ona možda neće imati vrednost.
Na primjer:
name1 = ""
Da biste testirali da li varijabla ima vrijednost ili ne (tj. Ima duljinu nule), koristite -z na sljedeći način:
ako [-z $ name1]
U gornjem skriptu postavio sam $ name1 u string nula i onda ga upoređivao pomoću -z. Ako je $ name1 nula u dužini, prikazaće se poruka "Gary je otišla na večeru".
05 od 08
Vodič za početnike BASH - upoređivanje brojeva
Do sada su sva poređenja bila za strune. Šta je sa upoređivanjem brojeva?
Navedeni skript pokazuje primer poređenja dva broja:
#! / bin / bash
a = 4
b = 5ako je [$ a = $ b]
onda
echo "4 = 5"
drugo
echo "4 nije 5"
fi
Da biste postavili promenljivu broj, jednostavno je postavite bez navodnika. Tada možete upoređivati brojeve sa jednakim znakom.
Više volim da koristim sledećeg operatora da uporedim dva broja:
Ako [$ a -eq $ b]
06 od 08
Vodič za početnike BASH - upoređivanje brojeva
Ako želite da uporedite da li je broj manji od drugog, možete koristiti manje od operatera (<). Kao i kod žica, moraš da pobegneš manje od operatera sa kosom. (\ <).
Bolji način upoređivanja brojeva je umjesto toga koristiti sljedeću notaciju:
- Manje od -lt
- Manje ili jednako -le
- Veći od -gt
- Veće od ili jednako -ge
Na primjer:
ako [$ a -lt $ b]
ako [$ a -le $ b]
ako [$ a -ge $ b]
ako [$ a -gt $ b]
07 od 08
Vodič za početnike BASH - upoređivanje brojeva
Konačno za ovaj vodič, ako želite da testirate da li su dva broja različita, možete koristiti manje ili više operatora zajedno (<>) ili -ne na sledeći način:
ako je [$ a <> $ b]
ako [$ a -ne $ b]
08 od 08
Vodič za početnike BASH - Operatori upoređivanja - rezime
Ako ste propustili prva tri dela ovog vodiča, možete ih pronaći tako što ćete kliknuti na sledeće linkove:
U sledećem delu vodiča ću pokrivati aritmetiku.