Skip to main content

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

Anonim
01 no 08

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

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 / bashname1 = "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

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 <izmantot >.

Piemēram

ja "$ name1" > "$ name2" 03 no 08

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

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

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ē (t.i., 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

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 / basha = 4b = 5ja $ a = $ btad 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

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:

  • Mazāk par -lt
  • Mazāk vai vienāds ar-le
  • Lielāks par -gt
  • Lielāks vai vienāds ar -ge

Piemēram:

ja $ a -lt $ bja $ a -le $ bja $ a -ge $ bja $ a -gt $ b 07 no 08

Iesācēju rokasgrāmata BASH - 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 <> $ bja $ 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:

  • Sveika pasaule
  • Ievades parametri
  • Nosacījumi un mainīgie

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