Udhëzues për fillestar në BASH - Krahasimi i gjërave

01 nga 08

Udhëzues për fillestar në BASH - Krahasimi i gjërave

BASH Tutorial - Krahasimi i Strings.

Në pjesën e mëparshme të mësimdhënies së BASH ne kemi parë deklarata të kushtëzuara .

Ky udhëzues ishte shumë i gjatë, por me të vërtetë tregoi vetëm se si të kontrollonte rrjedhën e logjikës. Ky udhëzues tregon mënyrat e ndryshme në të cilat mund të krahasoni ndryshoret.

Imazhi i mësipërm tregon shembullin e parë në udhëzuesin e kësaj jave:

#! / bin / bash

NAME1 = "gary"
NAME2 = "bob"

nëse ["$ name1" = "$ name2"]
atëherë
echo "ndeshje emrat"
tjetër
echo "emrat nuk përputhen"
fi


Në shkrimin e mësipërm kam përcaktuar dy variabla që quhen name1 dhe name2 dhe u kanë caktuar vlerat "gary" dhe "bob". Ndërsa variablat janë të përfshira midis thonjëzimeve ato quhen variable variabla, të cilat bëhen më të rëndësishme, ndërsa tutorial vazhdon.

E gjithë shkrimi nuk është krahasuar me vlerën e $ name1 dhe $ name2 dhe nëse përputhen me rezultatin e stringit "ndeshje të emrave" dhe në qoftë se ata nuk nxjerrin vargun "emrat nuk përputhen".

Thonjëza rreth variablave $ name1 dhe $ name2 janë të rëndësishme, sepse nëse vlera e secilës prej tyre nuk është caktuar, atëherë skripti do të vazhdojë të funksionojë.

Për shembull nëse $ name1 nuk u vendos kurrë atëherë do të krahasonit "" me "bob". Pa shenjat e kuotimit ju do të lihet me = "bob", i cili qartë dështon.

Ju gjithashtu mund të përdorni! = Notation për të përcaktuar jo të barabartë me sa vijon:

nëse ["$ name1"! = "$ name2"]

02 nga 08

Udhëzuesi i Fillestarëve për BASH - Krahasimi i Strings

BASH Tutorial - Krahasimi i Strings.

Në shembullin e mësipërm, testi krahason të njëjtat dy vargje dhe pyet pyetjen nëse gary vjen përpara bob në alfabetin?

Qartazi përgjigja është jo.

Skenari prezanton më pak se operatorin (<). Si më pak se operatori përdoret gjithashtu për ridrejtim ju duhet ta shpëtoni atë me një prerje (\) sepse kjo do të thotë më pak se cila është arsyeja pse në shkrimin e mësipërm krahasova "$ name1" \ <"$ name2".

E kundërta e më pak se është padyshim më e madhe se. Në vend të përdorimit të \ .

Për shembull

nëse ["$ name1" \ "" $ name2 "]

03 nga 08

Udhëzuesi i Fillestarëve për BASH - Krahasimi i Strings

BASH Tutorial - Krahasimi i Strings.

Nëse doni të provoni nëse një ndryshore ka një vlerë, mund të përdorni testin e mëposhtëm:

nëse [-n $ name2]

Në shkrimin e mësipërm kam testuar nëse $ name2 është dhënë një vlerë dhe nëse nuk ka mesazhin "Nuk ka bob, nuk u shfaq kurrë një bob".

04 nga 08

Udhëzuesi i Fillestarëve për BASH - Krahasimi i Strings

BASH Tutorial - Krahasimi i Strings.

Në rrëshqitjen e kaluar kemi mbuluar nëse një variabël është vendosur ose jo. Ndonjëherë edhe pse një ndryshore mund të jetë vendosur, por në të vërtetë nuk mund të ketë vlerë.

Për shembull:

name1 = ""

Për të provuar nëse një variabël ka një vlerë ose jo (dmth ka një gjatësi zero) përdorni -z si më poshtë:

nëse [-z $ name1]

Në skenarin e mësipërm kam vendosur $ name1 në një gjatësi të gjerësisë zero dhe pastaj e krahasova duke përdorur -z. Nëse $ name1 është zero në gjatësi mesazhi "gary ka dalë për mbrëmje" do të shfaqet.

05 nga 08

Udhëzuesi i Fillestarëve për BASH - Krahasimi i Numrave

BASH Tutorial - Krahasimi i Numrave.

Deri tani të gjitha krahasimet kanë qenë për vargjet. Po në krahasim me numrat?

Skenari i mësipërm tregon një shembull të krahasimit të dy numrave:

#! / bin / bash

a = 4
b = 5

nëse [$ a = $ b]
atëherë
echo "4 = 5"
tjetër
echo "4 nuk është e barabartë 5"
fi

Për të vendosur një ndryshore për të qenë një numër thjesht e vendosni atë pa thonjëza. Ju pastaj mund të krahasoni numrat me një shenjë të barabartë.

Unë preferoj, megjithatë, të përdor këtë operator për të krahasuar dy numra:

Nëse [$ a-eq $ b]

06 nga 08

Udhëzuesi i Fillestarëve për BASH - Krahasimi i Numrave

BASH Tutorial - Krahasimi i Numrave.

Nëse dëshironi të krahasoni nëse një numër është më i vogël se një numër tjetër ju mund të përdorni më pak se operator (<). Ashtu si me strings ju duhet të shpëtojnë më pak se operator me një prerje. (\ <).

Një mënyrë më e mirë e krahasimit të numrave është përdorimi i notacionit në vijim:

Për shembull:

nëse [$ a -lt $ b]

nëse [$ a -le $ b]

nëse [$ a -ge $ b]

nëse [$ a -gt $ b]

07 nga 08

Udhëzuesi i Fillestarëve për BASH - Krahasimi i Numrave

BASH Tutorial - Krahasimi i Numrave.

Së fundi për këtë udhëzues, nëse doni të provoni nëse dy numra janë të ndryshëm, mund të përdorni ose më pak se dhe më të madh se operatorët së bashku (<>) ose -ne si më poshtë:

nëse [$ a <> $ b]

nëse [$ a -ne $ b]

08 nga 08

Udhëzues fillestar për BASH - Operatorët Krahasues - Përmbledhje

Nëse keni humbur tri pjesët e para të këtij udhëzuesi ju mund t'i gjeni duke klikuar në lidhjet e mëposhtme:

Në pjesën tjetër të udhëzuesit unë do të mbuloj aritmetikën.