01 nga 08
Udhëzues për fillestar në BASH - Krahasimi i gjërave
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
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
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
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
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 = 5në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
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:
- Më pak se -lt
- Më pak ose e barabartë me -le
- Më i madh se -gt
- Më i madh ose i barabartë me -ge
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
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.