Gabay sa Nagsisimula Upang BASH - Paghahambing ng mga Bagay

01 ng 08

Gabay sa Nagsisimula Upang BASH - Paghahambing ng mga Bagay

Tutorial sa BASH - Mga paghahambing ng mga string.

Sa nakaraang bahagi ng BASH tutorial, tumingin kami sa mga kondisyong pahayag .

Ang gabay na iyon ay napakatagal ngunit talagang nagpakita lamang kung paano kontrolin ang daloy ng lohika. Ang gabay na ito ay nagpapakita ng iba't ibang mga paraan kung saan maaari mong ihambing ang mga variable.

Ipinapakita sa larawan sa itaas ang unang halimbawa sa gabay sa linggong ito:

#! / bin / bash

name1 = "gary"
name2 = "bob"

kung ["$ name1" = "$ name2"]
pagkatapos
echo "tumutugma ang mga pangalan"
iba pa
echo "ang mga pangalan ay hindi tumutugma"
fi


Sa script sa itaas ay tinukoy ko ang dalawang variable na tinatawag na name1 at name2 at itinalaga sa kanila ang mga halaga na "gary" at "bob". Tulad ng mga variable ay nakapaloob sa pagitan ng mga panipi ng mga marka na ito ay tinatawag na mga variable na string na nagiging mas may kaugnayan bilang ang tutorial goes on.

Ang lahat ng script ay ihambing ang halaga ng $ name1 at $ name2 at kung itugma ang output ang string na "ang mga pangalan ay tumutugma" at kung hindi nila i-output ang string "ang mga pangalan ay hindi tumutugma".

Ang mga panipi sa paligid ng $ name1 at $ name2 variable ay mahalaga dahil kung ang halaga ng alinman sa mga ito ay hindi pa naitakda pagkatapos ang script ay gagana pa rin.

Halimbawa kung ang $ name1 ay hindi naka-set pagkatapos ay gusto mong ihambing ang "" na may "bob". Kung wala ang mga panipi ay mawawalan ka ng = "bob" na malinaw na nabigo.

Maaari mo ring gamitin ang! = Notasyon upang tukuyin ang hindi pantay sa mga sumusunod:

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

02 ng 08

Mga Gabay sa Nagsisimula Upang BASH - Mga paghahambing ng mga string

Tutorial sa BASH - Mga paghahambing ng mga string.

Sa halimbawa sa itaas ang pagsusulit ay nagkukumpara sa parehong dalawang mga string at nagtatanong ng tanong ay dumating si Gary bago tumama sa alpabeto?

Maliwanag na ang sagot ay hindi.

Ipinakilala ng script ang mas mababa sa operator (<). Bilang ang mas mababa kaysa sa operator ay ginagamit din para sa redirection kailangan mong makatakas ito sa isang slash (\) para sa mga ito upang sabihin mas mababa kaysa kung saan ay kung bakit sa script sa itaas ko kumpara "$ name1" \ "$ name2".

Ang kabaligtaran ng mas mababa sa ay malinaw na mas malaki kaysa sa. Sa halip ng paggamit ng \ .

Halimbawa

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

03 ng 08

Mga Gabay sa Nagsisimula Upang BASH - Mga paghahambing ng mga string

Tutorial sa BASH - Mga paghahambing ng mga string.

Kung nais mong subukan kung ang isang variable ay may isang halaga maaari mong gamitin ang sumusunod na pagsubok:

kung [-n $ name2]

Sa script sa itaas nasubukan ko kung ang $ name2 ay binigyan ng isang halaga at kung hindi ito ang mensahe na "Walang bob, walang kailanman lumabas ang bob".

04 ng 08

Mga Gabay sa Nagsisimula Upang BASH - Mga paghahambing ng mga string

Tutorial sa BASH - Mga paghahambing ng mga string.

Sa nakalipas na slide sakop namin kung ang isang variable ay naitakda o hindi. Minsan kahit na ang isang variable ay maaaring naka-set ngunit hindi ito maaaring magkaroon ng halaga.

Halimbawa:

name1 = ""

Upang subukan kung ang isang variable ay may halaga o hindi (ibig sabihin ay may haba ng zero) gamitin -z tulad ng sumusunod:

kung [-z $ name1]

Sa script sa itaas ay inilagay ko ang $ name1 sa isang zero length string at pagkatapos ay inihambing ito gamit ang -z. Kung ang $ name1 ay zero sa haba ang mensahe na "gary ay lumabas para sa gabi" ay ipapakita.

05 ng 08

Gabay sa Mga Nagsisimula Upang BASH - Paghahambing ng Mga Numero

Tutorial sa BASH - Paghahambing ng Mga Numero.

Sa ngayon ang lahat ng mga paghahambing ay para sa mga string. Paano ang tungkol sa paghahambing ng mga numero?

Ang script sa itaas ay nagpapakita ng isang halimbawa ng paghahambing ng dalawang numero:

#! / bin / bash

a = 4
b = 5

kung ang [$ a = $ b]
pagkatapos
echo "4 = 5"
iba pa
echo "4 ay hindi katumbas ng 5"
fi

Upang magtakda ng isang variable upang maging isang numero, i-set ito nang walang mga panipi. Pagkatapos ay maaari mong ihambing ang mga numero na may katumbas na tanda.

Mas gusto ko gayunpaman gamitin ang sumusunod na operator upang ihambing ang dalawang numero:

Kung ang [$ a -eq $ b]

06 ng 08

Gabay sa Mga Nagsisimula Upang BASH - Paghahambing ng Mga Numero

Tutorial sa BASH - Paghahambing ng Mga Numero.

Kung nais mong ihambing kung ang isang numero ay mas mababa kaysa sa isa pang numero maaari mong gamitin ang mas mababa sa operator (<). Tulad ng mga string kailangan mong makatakas sa mas mababa sa operator na may slash. (\ <).

Ang isang mas mahusay na paraan ng paghahambing ng mga numero ay ang paggamit ng sumusunod na notasyon sa halip:

Halimbawa:

kung ang [$ a -lt $ b]

kung ang [$ a -le $ b]

kung ang [$ a -ge $ b]

kung ang [$ a -gt $ b]

07 ng 08

Gabay sa Mga Nagsisimula Upang BASH - Paghahambing ng Mga Numero

Tutorial sa BASH - Paghahambing ng Mga Numero.

Panghuli para sa gabay na ito, kung nais mong subukan kung ang dalawang numero ay naiiba maaari mong gamitin ang alinman sa mas mababa kaysa at mas malaki kaysa sa mga operator magkasama (<>) o -ne tulad ng sumusunod:

kung ang [$ a <> $ b]

kung ang [$ a -ne $ b]

08 ng 08

Mga Gabay sa Nagsisimula Upang BASH - Paghahambing ng mga Operator - Buod

Kung napalampas mo ang unang tatlong bahagi ng gabay na ito maaari mong makita ang mga ito sa pamamagitan ng pag-click sa sumusunod na mga link:

Sa susunod na bahagi ng gabay ay sasaklaw ako sa aritmetika.