Skip to main content

Vodič za početnike za BASH - Usporedba stvari

Supersection 1, More Comfortable (Travanj 2025)

Supersection 1, More Comfortable (Travanj 2025)
Anonim
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 / bashime1 = "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 <upotrebu >.

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 kao što 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 / basha = 4b = 5ako $ a = $ bzatim 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 $ bako $ a -le $ bako $ a -ge $ bako $ 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 <> $ bako $ 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:

  • Pozdrav svijete
  • Parametri unosa
  • Uvjeti i varijable

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