Iesācēju rokasgrāmata BASH - salīdzinot lietām

01 no 08

Iesācēju rokasgrāmata BASH - salīdzinot lietām

BASH Tutorial - Stringu salīdzināšana.

Iepriekšējā BASH apmācības daļā mēs apskatījām nosacītus apgalvojumus .

Šī rokasgrāmata bija ļoti garša, bet patiešām parādīja, kā kontrolēt loģikas plūsmu. Šajā rokasgrāmatā ir parādīti dažādi mainīgo lielumu salīdzināšanas veidi.

Iepriekš attēlā redzams pirmais piemērs šīs nedēļas ceļvedī:

#! / bin / bash

name1 = "gary"
nosaukums2 = "bobs"

ja ["$ name1" = "$ name2"]
tad
echo "vārdi atbilst"
cits
echo "vārdi nesakrīt"
fi


Iepriekš minētajā skriptā esmu definējis divus mainīgos, ko sauc par names1 un name2, un piešķir tiem vērtības "gary" un "bob". Tā kā mainīgie ir ietverti pēdiņās, tos sauc par virkņu mainīgajiem, kas kļūst atbilstošāki, kā turpinās apmācība.

Viss skripts salīdzina $ name1 un $ name2 vērtību, un, ja tie atbilst izlaidei, virkne "nosaukumi atbilst" un ja tie neizsniedz virkni "nosaukumi nesakrīt".

Pēdiņas ap $ name1 un $ name2 mainīgajiem ir svarīgas, jo, ja neviena no tām nav iestatīta, skripts joprojām darbosies.

Piemēram, ja $ name1 netika iestatīts, tad jūs salīdzinātu ar "" ar "bob". Bez pēdiņām jums paliktu = "bob", kas acīmredzami neizdodas.

Jūs varat arī izmantot! = Apzīmējumu, lai definētu, kas nav vienāds ar sekojošo:

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

02 no 08

Iesācēju rokasgrāmata BASH - salīdzinot virknes

BASH Tutorial - Stringu salīdzināšana.

Iepriekš minētajā piemērā tests salīdzina tās pašas divas virknes un liek domāt, ka jautājums neatrodas pirms Boba alfabētā?

Skaidrs, ka atbilde ir nē.

Skripts ievieš mazāk nekā operatoru (<). Tā kā mazāk nekā operatoram tiek izmantota arī novirzīšana, tai ir jāizvairās ar slīpsvītru (\), lai tas nozīmētu mazāk, tāpēc iepriekšējā skriptā es salīdzināju "$ name1" \ <"$ name2".

Pretējs mazāk nekā acīmredzami ir lielāks par. Tā vietā, lai izmantotu \ .

Piemēram

ja ["$ name1" \> "$ name2"]

03 no 08

Iesācēju rokasgrāmata BASH - salīdzinot virknes

BASH Tutorial - Stringu salīdzināšana.

Ja vēlaties pārbaudīt, vai mainīgajam ir vērtība, varat izmantot šādu testu:

ja [-n $ name2]

Iepriekš minētajā skriptā es pārbaudīju, vai $ name2 ir piešķirta vērtība, un, ja tam nav ziņojuma "Nav boba, nekad nav parādīts bobs".

04 no 08

Iesācēju rokasgrāmata BASH - salīdzinot virknes

BASH Tutorial - Stringu salīdzināšana.

Iepriekšējā slaidsnē mēs apskatījām, vai mainīgais ir iestatīts vai nav. Dažreiz var būt iestatīts mainīgais, taču tam faktiski nav vērtības.

Piemēram:

name1 = ""

Lai pārbaudītu, vai mainīgajam ir vērtība vai nē (ti, ir nulles garums), izmantojiet -z šādi:

ja [-z $ name1]

Iepriekš minētajā skriptā esmu iestatījis $ name1 uz nulles garuma virkni un pēc tam to salīdzinājis, izmantojot -z. Ja $ name1 ir nulle, tiek parādīts ziņojums "Gary ir izgājis vakarā".

05 no 08

Iesācēju rokasgrāmata BASH - salīdzinot numurus

BASH Tutorial - Salīdzinot numurus.

Līdz šim visi salīdzinājumi ir saistīti ar stīgām. Kā salīdzināt ciparus?

Iepriekšējais skripts rāda piemēru, kā salīdzināt divus skaitļus:

#! / bin / bash

a = 4
b = 5

ja [$ a = $ b]
tad
echo "4 = 5"
cits
echo "4 nepārsniedz 5"
fi

Lai iestatītu mainīgo kā numuru, vienkārši iestatiet to bez pēdiņām. Pēc tam jūs varat salīdzināt ciparus ar vienādu zīmi.

Tomēr es gribētu izmantot šādu operatoru, lai salīdzinātu divus skaitļus:

Ja [$ a -eq $ b]

06 no 08

Iesācēju rokasgrāmata BASH - salīdzinot numurus

BASH Tutorial - Salīdzinot numurus.

Ja vēlaties salīdzināt, vai skaitlis ir mazāks par citu numuru, varat izmantot mazāk nekā operatoru (<). Kā ar stīgām, jums ir jāizvairās no mazāk nekā operatora ar slīpsvītru. (\ <).

Labāks veids, kā salīdzināt ciparus, ir izmantot šādu apzīmējumu:

Piemēram:

ja [$ a -lt $ b]

ja [$ a -le $ b]

ja [$ a -ge $ b]

ja [$ a -gt $ b]

07 no 08

Iesācēju rokasgrāmata BASH - salīdzinot numurus

BASH Tutorial - Salīdzinot numurus.

Visbeidzot, attiecībā uz šo rokasgrāmatu, ja vēlaties pārbaudīt, vai divi cipari ir atšķirīgi, jūs varat kopīgi izmantot vienu vai vairākus operatorus (<>) vai -ne šādi:

ja [$ a <> $ b]

ja [$ a -ne $ b]

08 no 08

Iesācēju rokasgrāmata BASH salīdzināšanas operatoriem - Kopsavilkums

Ja esat aizmirsis šīs rokasgrāmatas pirmās trīs daļas, jūs varat tos atrast, noklikšķinot uz šādām saitēm:

Nākamajā rokasgrāmatas daļā es attieksies uz aritmētiku.