Byrjandi Guide til BASH - Samanburður á hlutum

01 af 08

Byrjandi Guide til BASH - Samanburður á hlutum

Bash Tutorial - Samanburður á strengi.

Í fyrri hluta BASH handbókarinnar horfðum við á skilyrt yfirlýsingar .

Þessi leiðarvísir var mjög langur en sýndi í raun aðeins hvernig á að stjórna flæði rökfræði. Þessi handbók sýnir mismunandi leiðir til að bera saman breytur.

Ofangreind mynd sýnir fyrsta dæmi í handbók þessari viku:

#! / bin / bash

name1 = "gary"
name2 = "bob"

ef ["$ name1" = "$ name2"]
Þá
echo "nöfnin passa"
Annar
echo "nöfnin passa ekki saman"
fi


Í ofangreindum handriti hefur ég skilgreint tvær breytur sem heitir nafn1 og nafn2 og gaf þeim gildi "gary" og "bob". Þar sem breytur eru á milli tilvitnunarmerkja kallast þau strengabreytur sem verða meira viðeigandi þegar kennslan fer fram.

Allt forskriftin er að bera saman gildi $ name1 og $ name2 og ef þau passa við að framleiða strenginn "nöfnin passa" og ef þeir framleiða ekki strenginn "nöfnin passa ekki saman".

Tilvitnunarmerkin í kringum $ name1 og $ name2 breyturnar eru mikilvægar vegna þess að ef gildi þessara tveggja er ekki stillt þá mun handritið virka.

Til dæmis ef $ name1 var aldrei sett þá væritu að bera saman "" með "bob". Án tilvitnunarmerkjanna myndi þú vera vinstri með = "bob" sem greinilega mistekst.

Þú getur líka notað! = Merkið til að skilgreina ekki jafnt sem hér segir:

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

02 af 08

Byrjandi Guide Til Bash - Samanburður Strings

Bash Tutorial - Samanburður á strengi.

Í dæminu hér að ofan samanstendur prófin af sömu tveimur strengjum og spyr spurninguna kemur Gary fram fyrir Bob í stafrófinu?

Augljóslega er svarið nei.

Handritið kynnir minna en símafyrirtækið (<). Þar sem minna en símafyrirtækið er einnig notað til umritunar verður þú að flýja því með skástriki (\) því að það þýðir minna en það er ástæðan fyrir í handritinu hér að ofan sem ég borði "$ name1" \ <"$ name2".

The andstæða minna en er augljóslega meiri en. Í stað þess að nota \ .

Til dæmis

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

03 af 08

Byrjandi Guide Til Bash - Samanburður Strings

Bash Tutorial - Samanburður á strengi.

Ef þú vilt prófa hvort breytu hefur gildi getur þú notað eftirfarandi próf:

ef [-n $ name2]

Í handritinu hér að framan hef ég prófað hvort $ name2 hefur verið gefið gildi og ef það skilar ekki skilaboðum "Það er engin bob, það var aldrei bob birtist".

04 af 08

Byrjandi Guide Til Bash - Samanburður Strings

Bash Tutorial - Samanburður á strengi.

Á fyrri myndinni fjallaðum við hvort breytu hafi verið stillt eða ekki. Stundum getur þó verið breytilegt en það gæti ekki raunverulega verið gildi.

Til dæmis:

name1 = ""

Til að prófa hvort breytu hefur gildi eða ekki (þ.e. hefur núlllengd) nota -z sem hér segir:

ef [-z $ name1]

Í ofangreindum handriti hefur ég sett $ name1 í núll lengd streng og þá miðað það með -z. Ef $ name1 er núll lengi birtist skilaboðin "Gary hefur farið út fyrir kvöldið".

05 af 08

Byrjandi Guide til BASH - samanburður tölur

Bash Tutorial - Samanburður tölur.

Hingað til hefur öll samanburð verið fyrir strengi. Hvað um að bera saman tölur?

Ofangreint handrit sýnir dæmi um að bera saman tvö númer:

#! / bin / bash

a = 4
b = 5

ef [$ a = $ b]
Þá
echo "4 = 5"
Annar
echo "4 er ekki jafnt 5"
fi

Til að stilla breytu til að vera númer, veldu einfaldlega það án tilvitnunarmerkja. Þú getur síðan borið saman tölurnar með jafnréttismerki.

Ég vil hins vegar nota eftirfarandi símafyrirtæki til að bera saman tvö númer:

Ef [$ a-eq $ b]

06 af 08

Byrjandi Guide til BASH - samanburður tölur

Bash Tutorial - Samanburður tölur.

Ef þú vilt bera saman hvort tala er minna en annað númer getur þú notað minna en rekstraraðila (<). Eins og með strengi þarftu að flýja minna en rekstraraðili með rista. (\ <).

A betri leið til að bera saman tölur er að nota eftirfarandi merkingu í staðinn:

Til dæmis:

ef [$ a -lt $ b]

ef [$ a -le $ b]

ef [$ a -ge $ b]

ef [$ a -gt $ b]

07 af 08

Byrjandi Guide til BASH - samanburður tölur

Bash Tutorial - Samanburður tölur.

Að lokum fyrir þessa handbók, ef þú vilt prófa hvort tveir tölur séu mismunandi geturðu notað annaðhvort minna en eða meira en rekstraraðilar saman (<>) eða -ne sem hér segir:

ef [$ a <> $ b]

ef [$ a -ne $ b]

08 af 08

Byrjandi Guide til BASH - Samanburður rekstraraðila - Yfirlit

Ef þú hefur misst af fyrstu þremur hlutum þessa handbók geturðu fundið þau með því að smella á eftirfarandi tengla:

Í næstu hluta leiðsagnarins mun ég vera með tölur.