Vodič za početnike za BASH - Usporedba stvari

01 od 08

Vodič za početnike za BASH - Usporedba stvari

BASH Tutorial - Usporedba žica.

U prethodnom dijelu BASH udžbenika smo pogledali uvjetne izjave .

Taj je vodič bio vrlo dug, ali zapravo je samo pokazao kako kontrolirati tok logike. Ovaj vodič prikazuje različite načine na koje možete usporediti varijable.

Gornja slika prikazuje prvi primjer u vodiču ovog tjedna:

#! / bin / bash

ime1 = "Gary"
NAME2 = "Bob"

ako ["$ name1" = "$ name2"]
zatim
echo "imena se podudaraju"
drugo
echo "imena se ne podudaraju"
fi


U gore navedenoj skripti definirala sam dvije varijable nazvane name1 i name2 te im dodijeljene vrijednosti "gary" i "bob". Budući da su varijable sadržane između navodnika, oni se nazivaju string varijable koje postaju relevantnije kako nastavlja.

Sve skripte uspoređuju vrijednost $ name1 i $ name2 i ako se podudaraju s izlazom stringa "imena se podudaraju" i ako ne izlaze string "imena se ne podudaraju".

Navodnici oko varijabli $ name1 i $ name2 važni su jer ako vrijednost bilo koje od njih nije postavljena, skripta će i dalje funkcionirati.

Na primjer, ako $ name1 nikada nije postavljen onda bi se usporedba "" s "bob". Bez navodnika ćete ostati s = "bob" koji jasno ne uspije.

Također možete upotrijebiti! = Oznaku za definiranje nejednako kako slijedi:

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

02 od 08

Vodič za početnike BASH - Usporedba žica

BASH Tutorial - Usporedba žica.

U gornjem primjeru test uspoređuje iste dvije žice i postavlja pitanje da li se gary pojavljuje prije bob u abecedi?

Jasno je da je odgovor ne.

Skripta uvodi manje od operatera (<). Budući da je manje od operatera također korišten za preusmjeravanje, morate ga izbjeći sa slashom (\) jer to znači manje nego što je zašto je u gore navedenom scenariju usporedio "$ name1" \ <"$ name2".

Suprotno od manje od očito je veće od. Umjesto da upotrebljavate \ .

Na primjer

ako ["$ name1"> "$ name2"]

03 od 08

Vodič za početnike BASH - Usporedba žica

BASH Tutorial - Usporedba žica.

Ako želite testirati ima li varijabla vrijednost, možete upotrijebiti sljedeći test:

ako [-n $ name2]

U gore navedenom pismu testiran sam da li $ name2 dobiva vrijednost i ako ne piše "Nema bob, nikad se nije pojavio bob".

04 od 08

Vodič za početnike BASH - Usporedba žica

BASH Tutorial - Usporedba žica.

Na prethodnom slajdu smo pokrivali je li varijabla postavljena ili ne. Ponekad iako je varijabla možda postavljena, ali možda ne mora imati vrijednost.

Na primjer:

name1 = ""

Da biste testirali je li varijabla vrijednost ili ne (tj. Ima duljinu od nule), upotrijebite -z kako slijedi:

ako [-z $ name1]

U gore navedenoj skripti postavio sam $ name1 na niz nulte duljine i usporedio ga koristeći -z. Ako je $ name1 nula dužine, prikazat će se poruka "Gary je izašla za večer".

05 od 08

Vodič za početnike u BASH - Usporedba brojeva

BASH Tutorial - Usporedba brojeva.

Do sada su sve usporedbe bile za žice. Što je uspoređivanje brojeva?

Gornja skripta pokazuje primjer usporedbe dvaju brojeva:

#! / bin / bash

a = 4
b = 5

ako [$ a = $ b]
zatim
eho "4 = 5"
drugo
eho "4 nije jednako 5"
fi

Da biste postavili varijablu kao broj, jednostavno ga postavite bez navodnika. Zatim možete usporediti brojeve s znakom jednakosti.

Ipak, radije bih upotrijebio sljedeći operater za usporedbu dvaju brojeva:

Ako [$ -eq $ b]

06 od 08

Vodič za početnike u BASH - Usporedba brojeva

BASH Tutorial - Usporedba brojeva.

Ako želite usporediti je li broj manji od drugog broja, možete koristiti manje od operatera (<). Kao i kod žica, morate izbjeći manje od operatera s prorezom. (\ <).

Bolji način uspoređivanja brojeva je umjesto toga upotrijebiti 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 u BASH - Usporedba brojeva

BASH Tutorial - Usporedba brojeva.

Konačno, za ovaj vodič, ako želite testirati razlikuju li se dva broja, možete upotrijebiti manje ili više od operatora zajedno (<>) ili - na sljedeći način:

ako [$ a <> $ b]

ako [$ a -ne $ b]

08 od 08

Vodič za početnike BASH - Operatori za usporedbu - Sažetak

Ako ste propustili prva tri dijela ovog vodiča, možete ih pronaći klikom na sljedeće veze:

U sljedećem dijelu vodiča obračunat ću aritmetiku.