01 od 08
Vodič za početnike za BASH - Usporedba stvari
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
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
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
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
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 = 5ako [$ 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
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:
- Manje od -lt
- Manje od ili jednako -le
- Veći od -gt
- Veća ili jednaka -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 u BASH - 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.