Vodič za početnike BASH - upoređivanje stvari

01 od 08

Vodič za početnike BASH - upoređivanje stvari

BASH tutorijal - upoređivanje struna.

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

BASH tutorijal - upoređivanje struna.

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

BASH tutorijal - upoređivanje struna.

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

BASH tutorijal - upoređivanje struna.

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

BASH tutorijal - 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 = 5

ako 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

BASH tutorijal - 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:

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

BASH tutorijal - 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.