Beginners ուղեցույց դեպի BASH - համեմատելով բաներ

01-ը 08-ը

Beginners ուղեցույց դեպի BASH - համեմատելով բաներ

BASH Tutorial - Համեմատելով տողերը:

BASH- ի ուսումնական ձեռնարկի նախորդ մասում մենք դիտեցինք պայմանական հայտարարություններ :

Այդ ուղեցույցը շատ երկար էր, բայց իրականում միայն ցույց տվեց, թե ինչպես վերահսկել տրամաբանության հոսքը: Այս ուղեցույցը ցույց է տալիս տարբեր եղանակները, որոնցով կարող եք համեմատել փոփոխականները:

Վերոնշյալ պատկերը ցույց է տալիս այս շաբաթվա ուղեցույցի առաջին օրինակը.

#! / bin / bash

name1 = "gary"
name2 = "bob"

եթե ["$ name1" = "$ name2"]
ապա
echo "անունները համընկնում են"
Այլ
echo "անունները չեն համապատասխանում"
fi


Վերոհիշյալ սցենարի մեջ ես սահմանել եմ name1 եւ name2 կոչվող երկու փոփոխականներ եւ նրանց նշանակել «gary» եւ «bob» արժեքները: Քանի որ փոփոխականները պարունակվում են տողերի նշագծերի միջեւ, դրանք կոչվում են լարային փոփոխականներ, որոնք դառնում են ավելի համապատասխան, քանի որ ձեռնարկը շարունակվում է:

Բոլոր սցենարը համեմատում է $ name1- ի եւ $ name2- ի արժեքը եւ եթե դրանք համապատասխանում են «անվանումները համընկնում» տողը եւ եթե «չեն համապատասխանում անունները» տողը:

$ Name1- ի եւ $ name2- ի փոփոխականների մեջ նշվում է, որ եթե դրանցից որեւէ մեկը չի սահմանվել, ապա սցենարը կգործի:

Օրինակ, $ name1- ը երբեք չի սահմանվել, ապա «բոբ» -ի հետ համեմատում ես »: Առանց ցողունային նշանների, դուք կթողնեք = "bob "- ով, որը հստակ չի հաջողվում:

Դուք նույնպես կարող եք օգտագործել! = Նշումը, որը չի սահմանում հետեւյալը.

եթե ["$ name1"! = "$ name2"]

02-ից 08-ը

Beginners ուղեցույց դեպի BASH - Համեմատելով տողերը

BASH Tutorial - Համեմատելով տողերը:

Վերոնշյալ օրինակում փորձությունը համեմատում է նույն երկու տողերը եւ հարցնում է, թե գերի է գալիս բոբին մինչեւ այբուբենը:

Պարզ է, որ պատասխանը ոչ:

Սցենարը ներկայացնում է պակաս օպերատորից (<): Քանի որ պակաս օպերատորն օգտագործվում է վերահասցեավորելու համար, դուք պետք է խուսափեք այն կոճակով (\), որի համար ավելի քիչ նշանակում է, քան այն պատճառով, որ վերը նշված սցենարում համեմատեցի "$ name1" \ <"$ name2":

Նվազից հակառակն ակնհայտորեն ավելի մեծ է, քան. Օգտագործման փոխարեն \ <օգտագործել>>:

Օրինակ

եթե ["$ name1" \> "$ name2"]

03-ից 08-ը

Beginners ուղեցույց դեպի BASH - Համեմատելով տողերը

BASH Tutorial - Համեմատելով տողերը:

Եթե ​​ցանկանում եք ստուգել, ​​արդյոք փոփոխական արժեք ունի, կարող եք օգտագործել հետեւյալ փորձությունը.

եթե [-n $ name2]

Վերոհիշյալ սցենարով ես փորձարկեցի, թե արդյոք $ name2- ին տրվել է արժեք, եւ եթե դա չի նշանակում «բոբ չկա, այնտեղ երբեք չի հայտնվել»:

04-ը 08-ից

Beginners ուղեցույց դեպի BASH - Համեմատելով տողերը

BASH Tutorial - Համեմատելով տողերը:

Նախորդ անցյալում մենք լուսաբանեցինք, թե արդյոք փոփոխական է սահմանվել, թե ոչ: Երբեմն, միեւնույն է, փոփոխությունը կարող էր սահմանվել, բայց դա, ըստ էության, արժեք չունի:

Օրինակ:

name1 = ""

Փորձարկելու համար, փոփոխության արժեք ունի, թե ոչ (այսինքն, ունի զրոյական երկարություն), օգտագործեք հետեւյալը.

եթե [-s $ name1]

Վերոհիշյալ սցենարով ես $ name1- ը սահմանել եմ զրոյի երկարության տողում եւ այն համեմատել -z- ի հետ: Եթե ​​$ name1- ը զրոյական է, ապա կցուցադրվի «gary- ը դուրս է եկել երեկո»:

05-ը 08-ը

Beginners ուղեցույց դեպի BASH - Համեմատելով համարները

BASH Tutorial - Համեմատելով համարները:

Մինչ այժմ բոլոր համեմատությունները եղել են տողերի համար: Ինչ վերաբերում է թվերի համեմատությանը:

Վերոհիշյալ սցենարը ցույց է տալիս երկու թվերի համեմատությունը.

#! / bin / bash

ա = 4
b = 5

եթե [$ a = $ b]
ապա
echo "4 = 5"
Այլ
echo "4 չի հավասար 5"
fi

Որոշակի փոփոխություն սահմանելու համար պարզապես սահմանեք այն չակերտների նշաններ: Այնուհետեւ կարող եք համեմատել թվերը հավասար նշանով:

Նախընտրում եմ, սակայն, օգտագործեք հետեւյալ օպերատորը, համեմատեք երկու թվին.

Եթե ​​[$ a -eq $ b]

06-ից 08-ը

Beginners ուղեցույց դեպի BASH - Համեմատելով համարները

BASH Tutorial - Համեմատելով համարները:

Եթե ​​ցանկանում եք համեմատել, թե արդյոք մի շարք այլ թվից պակաս է, ապա կարող եք օգտագործել պակաս օպերատորը (<): Ինչպես տողերով դուք պետք է խուսափեք օպերատորի պակասից խուսափելուց: (\ <):

Համարների համեմատելու ավելի լավ միջոց է փոխարեն օգտագործել հետեւյալ նշումը.

Օրինակ:

եթե [$ a -lt $ b]

եթե [$ a -le $ b]

եթե [$ a -ge $ b]

եթե [$ a -gt $ b]

07-ը 08-ը

Beginners ուղեցույց դեպի BASH - Համեմատելով համարները

BASH Tutorial - Համեմատելով համարները:

Ի վերջո, այս ուղեցույցի համար, եթե ցանկանում եք ստուգել, ​​թե արդյոք երկու թվերը տարբեր են, կարող եք օգտագործել կամ ավելի քիչ, քան օպերատորների հետ միասին (<>) կամ հետեւյալ կերպ.

եթե [$ a <> $ b]

եթե [$ a -ne $ b]

08-ը 08-ը

Beginners ուղեցույց դեպի BASH - Համեմատական ​​օպերատորների - Summary

Եթե ​​դուք բաց թողնեք այս ուղեցույցի առաջին երեք մասերը, կարող եք գտնել դրանք, սեղմելով հետեւյալ հղումները.

Ուղեցույցի հաջորդ մասում ես կներկայացնեմ թվաբանություն: