Začetni vodič za BASH - primerjava stvari

01 od 08

Začetni vodič za BASH - primerjava stvari

BASH Tutorial - primerjava strun.

V prejšnjem delu BASH tutorial smo pregledali pogojne izjave .

Ta vodnik je bil zelo dolg, vendar je res samo pokazal, kako nadzirati pretok logike. Ta priročnik prikazuje različne načine, na katere lahko primerjate spremenljivke.

Zgornja slika prikazuje prvi primer v tem tedenskem priročniku:

#! / bin / bash

ime1 = "gary"
name2 = "bob"

če je ["$ name1" = "$ name2"]
potem
echo "imena se ujemajo"
drugače
echo "imena se ne ujemajo"
fi


V zgornjem scenariju sem definiral dve spremenljivki, imenovani name1 in name2, in jim dodelili vrednosti "gary" in "bob". Ker so spremenljivke vsebovane med narekovaji, jih imenujemo niz spremenljivk, ki postanejo bolj relevantne, ko se vadnica nadaljuje.

Vsa skripta ne primerja vrednosti $ name1 in $ name2 in če se ujemata z izpisom niza "imena se ujemata" in če ne oddajajo niza, se "imena ne ujemajo".

Navodila okrog spremenljivk $ name1 in $ name2 so pomembna, ker če vrednost ene izmed njih ni nastavljena, potem skript še vedno deluje.

Na primer, če $ name1 nikoli ni bil nastavljen, bi se primerjali z »bob«. Brez narekovajev vam ostane = "bob", ki očitno ne uspe.

Uporabite lahko tudi oznako! =, Da določite, da ni enako, kot sledi:

če je ["$ name1"! = "$ name2"]

02 od 08

Začetni vodič za BASH - primerjava strun

BASH Tutorial - primerjava strun.

V zgornjem primeru test primerja isti dve vrsti in sprašuje, ali vprašanje gary pride pred bob v abecedi?

Jasno je, da je odgovor ne.

Skript uvaja manj kot operater (<). Ker se za preusmeritev uporablja tudi manj kot operater, ga morate izogniti s poševnico (\), da bi to pomenilo manj kot zato, ker sem v zgornjem scenariju primerjal "$ name1" \ <"$ name2".

Nasprotno manj kot je očitno več kot. Namesto uporabe \ .

Na primer

če je ["$ name1" \> "$ name2"]

03 od 08

Začetni vodič za BASH - primerjava strun

BASH Tutorial - primerjava strun.

Če želite preizkusiti, ali ima spremenljivka vrednost, lahko uporabite naslednji test:

če je [-n $ name2]

V zgornjem skriptu sem preizkusil, ali je $ name2 dobil vrednost, in če ne vsebuje sporočila »Ni bob, nikoli ni bilo nobenega boba«.

04 od 08

Začetni vodič za BASH - primerjava strun

BASH Tutorial - primerjava strun.

Na preteklih prosojnicah smo preverili, ali je spremenljivka nastavljena ali ne. Včasih je bila morda spremenljiva spremenljivka, ki pa morda nima vrednosti.

Na primer:

name1 = ""

Za preverjanje, ali ima spremenljivka vrednost ali ne (tj. Ima dolžino nič), uporabite -z, kot sledi:

če je [-z $ name1]

V zgornjem skriptu sem določil $ name1 nizu ničelne dolžine in ga nato primerjal z uporabo -z. Če je $ name1 ničelna, se prikaže sporočilo »Gary je odšlo na večer«.

05 od 08

Začetni vodnik BASH - primerjava številk

BASH Tutorial - primerjava številk.

Do zdaj so bile vse primerjave za vrvice. Kaj pa primerjati številke?

Zgornji scenarij prikazuje primer primerjanja dveh številk:

#! / bin / bash

a = 4
b = 5

če je [$ a = $ b]
potem
echo "4 = 5"
drugače
echo "4 ni enak 5"
fi

Če želite spremeniti številko, jo preprosto nastavite brez narekovajev. Nato lahko primerjate številke z enakim znanjem.

Vendar pa raje uporabljam naslednjega operaterja za primerjavo dveh številk:

Če je [$ a -eq $ b]

06 od 08

Začetni vodnik BASH - primerjava številk

BASH Tutorial - primerjava številk.

Če želite primerjati, ali je število manj kot druga številka, lahko uporabite manj kot operater (<). Tako kot z nizi morate izogniti manj kot operaterja s poševnico. (\ <).

Bolje primerjati številke je namesto tega uporabiti naslednjo notacijo:

Na primer:

če je [$ a -lt $ b]

če je [$ a -le $ b]

če je [$ a -ge $ b]

če je [$ a -gt $ b]

07 od 08

Začetni vodnik BASH - primerjava številk

BASH Tutorial - primerjava številk.

Končno za ta vodnik, če želite preizkusiti, ali sta dve številki različni, lahko uporabite manj kot in več kot operaterji skupaj (<>) ali -ne na naslednji način:

če je [$ a <> $ b]

če je [$ a -ne $ b]

08 od 08

Vodnik za začetnike BASH - Primerjava operaterjev - povzetek

Če ste zamudili prve tri dele tega vodnika, jih lahko poiščete s klikom na naslednje povezave:

V naslednjem delu vodnika bom pokrival aritmetiko.