01-ը 08-ը
Beginners ուղեցույց դեպի BASH - համեմատելով բաներ
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 - Համեմատելով տողերը
Վերոնշյալ օրինակում փորձությունը համեմատում է նույն երկու տողերը եւ հարցնում է, թե գերի է գալիս բոբին մինչեւ այբուբենը:
Պարզ է, որ պատասխանը ոչ:
Սցենարը ներկայացնում է պակաս օպերատորից (<): Քանի որ պակաս օպերատորն օգտագործվում է վերահասցեավորելու համար, դուք պետք է խուսափեք այն կոճակով (\), որի համար ավելի քիչ նշանակում է, քան այն պատճառով, որ վերը նշված սցենարում համեմատեցի "$ name1" \ <"$ name2":
Նվազից հակառակն ակնհայտորեն ավելի մեծ է, քան. Օգտագործման փոխարեն \ <օգտագործել>>:
Օրինակ
եթե ["$ name1" \> "$ name2"]
03-ից 08-ը
Beginners ուղեցույց դեպի BASH - Համեմատելով տողերը
Եթե ցանկանում եք ստուգել, արդյոք փոփոխական արժեք ունի, կարող եք օգտագործել հետեւյալ փորձությունը.
եթե [-n $ name2]
Վերոհիշյալ սցենարով ես փորձարկեցի, թե արդյոք $ name2- ին տրվել է արժեք, եւ եթե դա չի նշանակում «բոբ չկա, այնտեղ երբեք չի հայտնվել»:
04-ը 08-ից
Beginners ուղեցույց դեպի BASH - Համեմատելով տողերը
Նախորդ անցյալում մենք լուսաբանեցինք, թե արդյոք փոփոխական է սահմանվել, թե ոչ: Երբեմն, միեւնույն է, փոփոխությունը կարող էր սահմանվել, բայց դա, ըստ էության, արժեք չունի:
Օրինակ:
name1 = ""
Փորձարկելու համար, փոփոխության արժեք ունի, թե ոչ (այսինքն, ունի զրոյական երկարություն), օգտագործեք հետեւյալը.
եթե [-s $ name1]
Վերոհիշյալ սցենարով ես $ name1- ը սահմանել եմ զրոյի երկարության տողում եւ այն համեմատել -z- ի հետ: Եթե $ name1- ը զրոյական է, ապա կցուցադրվի «gary- ը դուրս է եկել երեկո»:
05-ը 08-ը
Beginners ուղեցույց դեպի BASH - Համեմատելով համարները
Մինչ այժմ բոլոր համեմատությունները եղել են տողերի համար: Ինչ վերաբերում է թվերի համեմատությանը:
Վերոհիշյալ սցենարը ցույց է տալիս երկու թվերի համեմատությունը.
#! / bin / bash
ա = 4
b = 5եթե [$ a = $ b]
ապա
echo "4 = 5"
Այլ
echo "4 չի հավասար 5"
fi
Որոշակի փոփոխություն սահմանելու համար պարզապես սահմանեք այն չակերտների նշաններ: Այնուհետեւ կարող եք համեմատել թվերը հավասար նշանով:
Նախընտրում եմ, սակայն, օգտագործեք հետեւյալ օպերատորը, համեմատեք երկու թվին.
Եթե [$ a -eq $ b]
06-ից 08-ը
Beginners ուղեցույց դեպի BASH - Համեմատելով համարները
Եթե ցանկանում եք համեմատել, թե արդյոք մի շարք այլ թվից պակաս է, ապա կարող եք օգտագործել պակաս օպերատորը (<): Ինչպես տողերով դուք պետք է խուսափեք օպերատորի պակասից խուսափելուց: (\ <):
Համարների համեմատելու ավելի լավ միջոց է փոխարեն օգտագործել հետեւյալ նշումը.
- Ավելի քիչ, քան -լտ
- Ավելի քիչ կամ հավասար է
- Ավելի քան -gt
- Ավելի մեծ կամ հավասար է
Օրինակ:
եթե [$ a -lt $ b]
եթե [$ a -le $ b]
եթե [$ a -ge $ b]
եթե [$ a -gt $ b]
07-ը 08-ը
Beginners ուղեցույց դեպի BASH - Համեմատելով համարները
Ի վերջո, այս ուղեցույցի համար, եթե ցանկանում եք ստուգել, թե արդյոք երկու թվերը տարբեր են, կարող եք օգտագործել կամ ավելի քիչ, քան օպերատորների հետ միասին (<>) կամ հետեւյալ կերպ.
եթե [$ a <> $ b]
եթե [$ a -ne $ b]
08-ը 08-ը
Beginners ուղեցույց դեպի BASH - Համեմատական օպերատորների - Summary
Եթե դուք բաց թողնեք այս ուղեցույցի առաջին երեք մասերը, կարող եք գտնել դրանք, սեղմելով հետեւյալ հղումները.
Ուղեցույցի հաջորդ մասում ես կներկայացնեմ թվաբանություն: