Başlayanlar Kılavuzu BASH - müqayisə edən şeylər

01 ilə 08

Başlayanlar Kılavuzu BASH - müqayisə edən şeylər

BASH Tutorial - Satırları müqayisə.

BASH tutorialının əvvəlki hissəsində şərti ifadələrə baxdıq.

Bu təlimat çox uzun idi, amma həqiqətən yalnız mantığın axını necə idarə etdiyini göstərdi. Bu təlimatda dəyişənləri müqayisə edə biləcəyiniz müxtəlif yollar göstərilir.

Yuxarıdakı şəkil, bu həftə təlimatında ilk nümunəni göstərir:

#! / bin / bash

name1 = "gary"
name2 = "bob"

əgər ["$ name1" = "$ name2"]
sonra
echo "adları matç"
başqa
echo "adlar uyğun deyil"
fi


Yuxarıdakı scriptdə ad1 və ad2 adlı iki dəyişən müəyyən etdik və onları "gary" və "bob" kimi dəyərlər təyin etmişəm. Dəyişənlər tirnoq nişanları arasında olduğundan, təlimçi davam edərkən daha uyğun olan simli dəyişənlər adlanır.

Bütün skript, $ name1 və $ name2 dəyərlərini müqayisə edir və onlar "adlar uyğun" simvoluna uyğun gəlsələr və "adlar eşleşmiyor" düstüsünü çıxarmazlarsa.

$ Name1 və $ name2 dəyişənləri ətrafında alınan qiymətlər vacibdir, çünki onların hər ikisinin dəyəri müəyyən edilmədikdə, skript hələ də işləyəcəkdir.

Misal üçün, $ name1 heç vaxt quraşdırılmadıqda, siz "bob" ilə müqayisə edərdiniz. Tırnaq işarələri olmadan = "bob" ilə açıq qalırdı.

Aşağıdakı kimi bərabər olmayan müəyyən etmək üçün! = Notation istifadə edə bilərsiniz:

əgər ["$ name1"! = "$ name2"]

02/08

Başlayanlar Kılavuzu BASH - Satırları müqayisə etmək

BASH Tutorial - Satırları müqayisə.

Yuxarıda göstərilən nümunədə test eyni iki simvolu müqayisə edir və sual əlifbada bob əvvəl gary edir?

Aydındır ki, cavab yoxdur.

Ssenarisi operatordan az (<) təqdim edir. Yoxlama operatorundan daha az olduğu üçün, "$ name1" \ <"$ name2" ilə müqayisədə yuxarıda göstərilən scriptdə məndən daha az mənasını bildirmək üçün bir slash (\) ilə qaçmaq lazımdır.

Tərsindən daha az açıqdır. \ istifadə etmək əvəzinə.

Misal üçün

əgər ["$ name1" \> "$ name2"]

03 ilə 08

Başlayanlar Kılavuzu BASH - Satırları müqayisə etmək

BASH Tutorial - Satırları müqayisə.

Bir değişkenin bir değer olup olmadığını test etmek isterseniz aşağıdakı testi istifadə edə bilərsiniz:

əgər [-n $ name2]

Yuxarıdakı skriptdə mən $ name2-ə dəyər verildiyini yoxlayıb, yoxsa "Bob yoxdursa, heç bir hissə görünmür".

04/08

Başlayanlar Kılavuzu BASH - Satırları müqayisə etmək

BASH Tutorial - Satırları müqayisə.

Keçmiş slaydda biz dəyişən olub-olmadığını örtmüşdür. Bəzən dəyişən olsa da, əslində dəyəri yoxdur.

Məsələn:

name1 = ""

Bir dəyişənin bir dəyəri olub olmadığını yoxlamaq üçün (yəni sıfır uzunluğu var) -z istifadə edin:

əgər [-s $ name1]

Yuxarıda göstərilən scriptdə mən $ name1-ni sıfır uzunluqlu bir dize təyin etdik və sonra -z ilə müqayisə etdim. Əgər $ name1 uzunluğu sıfırsa "gary axşama çıxdı" mesajı göstərilir.

05/08

Başlayanlar Kılavuzu BASH - Nömrələri müqayisə etmək

BASH Tutorial - Nömrələri müqayisə.

Bu baxımdan bütün müqayisələr strings üçün olmuşdur. Nömrələri müqayisə etmək nədir?

Yuxarıdakı script iki ədədi müqayisə etmək üçün bir nümunə göstərir:

#! / bin / bash

a = 4
b = 5

əgər [$ a = $ b]
sonra
echo "4 = 5"
başqa
echo "4 bərabər deyil 5"
fi

Bir sıra olmaq üçün bir dəyişən təyin etmək üçün onu tirnoq işarəsi olmadan təyin edin. Daha sonra bərabər işarəsi olan nömrələri müqayisə edə bilərsiniz.

Mən iki ədədi müqayisə etmək üçün aşağıdakı operatordan istifadə etməyi üstün edirəm:

Əgər [$ a -eq $ b]

06-da 08

Başlayanlar Kılavuzu BASH - Nömrələri müqayisə etmək

BASH Tutorial - Nömrələri müqayisə.

Bir ədədin başqa bir saydan az olub olmadığını müqayisə etmək istəyirsinizsə operatordan daha az istifadə edə bilərsiniz (<). Lətifədə olduğu kimi, operatordan daha az qaçmaq lazımdır. (\ <).

Nömrələri müqayisə etmək üçün daha yaxşı bir şəkildə aşağıdakı qeydləri istifadə etməkdir:

Misal üçün:

əgər [$ a -lt $ b]

əgər [$ a -le $ b]

əgər [$ a -ge $ b]

əgər [$ a-gt $ b]

07-də ​​08

Başlayanlar Kılavuzu BASH - Nömrələri müqayisə etmək

BASH Tutorial - Nömrələri müqayisə.

Nəhayət, bu təlimat üçün, əgər iki ədəd fərqli olub olmadığını sınamaq istəsəniz operatorlardan daha az və ya daha çox istifadə edə bilərsiniz (<>) və ya aşağıdakı kimi:

əgər [$ a <> $ b]

əgər [$ a -ne $ b]

08-dən 08-dək

Başlayanlar Kılavuzu BASH - müqayisə Operatorlar - Xülasə

Bu təlimatın ilk üç hissəsini qaçırdıysanız aşağıdakı linkləri tıklayaraq onları tapa bilərsiniz:

Kılavuzun növbəti hissəsində hesabı əhatə edəcəyəm.