Canllaw i Ddechreuwyr BASH - Cymharu Pethau

01 o 08

Canllaw i Ddechreuwyr BASH - Cymharu Pethau

Tiwtorial BASH - Cymharu Llinynnau.

Yn rhan flaenorol y tiwtorial BASH, edrychwyd ar ddatganiadau amodol .

Roedd y canllaw hwnnw'n hir iawn ond mewn gwirionedd roedd yn dangos sut i reoli llif y rhesymeg yn unig. Mae'r canllaw hwn yn dangos y gwahanol ffyrdd y gallwch gymharu newidynnau.

Mae'r ddelwedd uchod yn dangos yr enghraifft gyntaf yn y canllaw wythnos hon:

#! / bin / bash

enw1 = "gary"
enw2 = "bob"

os ["$ name1" = "$ name2"]
yna
adleisio "yr enwau yn cyfateb"
arall
adleisio "nid yw'r enwau yn cyd-fynd"
fi


Yn y sgript uchod, rwyf wedi diffinio dau newidyn o'r enw enw1 ac enw2 ac wedi eu rhoi i'r gwerthoedd "gary" a "bob". Gan fod y newidynnau wedi'u cynnwys rhwng dyfynodau, fe'u gelwir yn newidynnau llinynnol sy'n dod yn fwy perthnasol wrth i'r tiwtorial fynd rhagddo.

Mae'r holl sgript yn cymharu gwerth $ name1 a $ name2 ac os ydynt yn cyfateb allbwn y llinyn "yr enwau yn cyfateb" ac os nad ydynt yn allbwn y llinyn "nid yw'r enwau yn cydweddu".

Mae'r dyfynbrisiau o gwmpas y newidynnau $ name1 a $ name2 yn bwysig oherwydd os nad yw gwerth y naill neu'r llall wedi ei osod yna bydd y sgript yn dal i weithio.

Er enghraifft, os na chafodd $ name1 ei osod, yna byddech chi'n cymharu "" gyda "bob". Heb y dyfynodau byddech yn cael eu gadael gyda = "bob" sy'n amlwg yn methu.

Gallwch hefyd ddefnyddio'r nodiant! = I ddiffinio nid yw'n gyfartal fel a ganlyn:

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

02 o 08

Canllaw i Ddechreuwyr BASH - Cymharu Lllinynnau

Tiwtorial BASH - Cymharu Llinynnau.

Yn yr enghraifft uchod, mae'r prawf yn cymharu'r un dau llinyn ac yn gofyn i'r cwestiwn fod gary yn dod cyn bob yn yr wyddor?

Yn amlwg, yr ateb yw na.

Mae'r sgript yn cyflwyno'r gweithredwr llai na (<). Gan fod y gweithiwr llai na gweithredydd hefyd yn cael ei ddefnyddio ar gyfer ailgyfeirio, mae'n rhaid i chi ei ddianc gyda slash (\) er mwyn iddo olygu llai na pham yn y sgript uchod yr wyf yn cymharu "$ name1" \ <"$ name2".

Mae'r gwrthwyneb gyfer lai nag yn amlwg yn fwy na. Yn hytrach na defnyddio \ .

Er enghraifft

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

03 o 08

Canllaw i Ddechreuwyr BASH - Cymharu Lllinynnau

Tiwtorial BASH - Cymharu Llinynnau.

Os ydych chi am brofi a oes gan newidyn werth, gallwch ddefnyddio'r prawf canlynol:

os [-n $ name2]

Yn y sgript uchod, rwyf wedi profi a yw $ name2 wedi cael gwerth ac os nad yw'r neges "Does dim bob, ni fu erioed bob ymddangos".

04 o 08

Canllaw i Ddechreuwyr BASH - Cymharu Lllinynnau

Tiwtorial BASH - Cymharu Llinynnau.

Ar y sleidiau diwethaf, gwnaethom orchuddio a oedd newidyn wedi'i osod ai peidio. Weithiau, efallai bod newidyn wedi'i osod ond efallai na fyddai gwerth mewn gwirionedd.

Er enghraifft:

enw1 = ""

I brofi a oes gan newidyn werth neu beidio (hy â hyd o sero) defnyddiwch -z fel a ganlyn:

os [-z $ name1]

Yn y sgript uchod, rwyf wedi gosod $ name1 i llinyn hyd sero ac yna'n ei gymharu gan ddefnyddio -z. Os yw $ name1 yn sero o hyd, bydd y neges "gary wedi mynd allan ar gyfer y noson" yn cael ei arddangos.

05 o 08

Canllaw i Ddechreuwyr BASH - Cymharu Niferoedd

Tiwtorial BASH - Cymharu Niferoedd.

Hyd yn hyn mae'r holl gymariaethau wedi bod ar gyfer tannau. Beth am gymharu niferoedd?

Mae'r sgript uchod yn dangos enghraifft o gymharu dau rif:

#! / bin / bash

a = 4
b = 5

os [$ a = $ b]
yna
adleisio "4 = 5"
arall
adleisio "4 ddim yn gyfartal 5"
fi

Er mwyn gosod amrywyn i fod yn rif, dim ond ei osod heb ddyfynodau. Yna gallwch chi gymharu'r niferoedd gydag arwydd cyfartal.

Mae'n well gennyf fodd bynnag, defnyddio'r gweithredydd canlynol i gymharu dau rif:

Os [$ a -eq $ b]

06 o 08

Canllaw i Ddechreuwyr BASH - Cymharu Niferoedd

Tiwtorial BASH - Cymharu Niferoedd.

Os ydych chi eisiau cymharu a yw nifer yn llai na rhif arall y gallwch chi ddefnyddio'r llai na gweithredwr (<). Fel gyda thaenau, mae'n rhaid i chi ddianc rhag llai na gweithredwr gyda slash. (\ <).

Ffordd well o gymharu niferoedd yw defnyddio'r nodyn canlynol yn lle hynny:

Er enghraifft:

os [$ a -lt $ b]

os [$ a -le $ b]

os [$ a -ge $ b]

os [$ a -gt $ b]

07 o 08

Canllaw i Ddechreuwyr BASH - Cymharu Niferoedd

Tiwtorial BASH - Cymharu Niferoedd.

Yn olaf ar gyfer y canllaw hwn, os ydych chi am brofi a yw dau rif yn wahanol, gallwch ddefnyddio'r naill na'r llall na'r gweithredwyr gyda'i gilydd (<>) neu - fel a ganlyn:

os [$ a <> $ b]

os [$ a -ne $ b]

08 o 08

Canllaw i BASH Dechreuwyr - Gweithredwyr Cymhariaeth - Crynodeb

Os ydych wedi colli tair rhan gyntaf y canllaw hwn gallwch ddod o hyd iddynt trwy glicio ar y dolenni canlynol:

Yn rhan nesaf y canllaw, byddaf yn cwmpasu rhifyddeg.