01 van 08
Beginnersgids tot BASH - Dinge vergelyk
In die vorige gedeelte van die BASH-tutoriaal het ons voorwaardelike stellings gekyk.
Die gids was baie lank, maar regtig net gewys hoe om die vloei van logika te beheer. Hierdie gids toon die verskillende maniere waarop jy veranderlikes kan vergelyk.
Bogenoemde beeld toon die eerste voorbeeld in hierdie week se gids:
#! / bin / bash
NAME1 = "Gary"
NAME2 = "bob"as ["$ name1" = "$ name2"]
dan
eggo "die name pas"
anders
eggo "die name stem nie ooreen nie"
fi
In die bostaande skrip het ek twee veranderlikes omskryf naam1 en naam2 en aan hulle die waardes "gary" en "bob" toegeken. Aangesien die veranderlikes tussen aanhalingstekens voorkom, word hulle stringveranderlikes genoem wat meer relevant word namate die tutoriaal aangaan.
Al die script doen vergelyk die waarde van $ name1 en $ name2 en as hulle ooreenstem met die uitset word die string "die name ooreenstem" en as hulle nie die string "die name nie ooreenstem nie" uit.
Die aanhalingstekens rondom die $ name1 en $ name2 veranderlikes is belangrik, want as die waarde van een van hulle nie ingestel is nie, sal die script steeds werk.
Byvoorbeeld, as $ name1 nooit gestel is nie, sou jy "" met "bob" vergelyk. Sonder die aanhalingstekens sal jy oorbly met = "bob" wat duidelik misluk.
U kan ook die! = Notasie gebruik om nie soos volg te definieer nie:
as ["$ name1"! = "$ name2"]
02 van 08
Beginnersgids tot BASH - Strings vergelyk
In die bostaande voorbeeld vergelyk die toets dieselfde twee snare en vra die vraag dat Gary voor Bob in die alfabet kom?
Dit is duidelik dat die antwoord nee is.
Die skrif stel die minder as operateur (<) voor. Aangesien die minder as operateur ook vir herleiding gebruik word, moet jy dit met 'n slash (\) ontsnap, want dit beteken minder as wat hoekom ek in die skrif hierbo "$ name1" \ <"$ name2" vergelyk het.
Die teenoorgestelde van minder as is natuurlik groter as. In plaas van die gebruik van \
Byvoorbeeld
as ["$ name1" \> "$ name2"]
03 van 08
Beginnersgids tot BASH - Strings vergelyk
As jy wil toets of 'n veranderlike 'n waarde het, kan jy die volgende toets gebruik:
as [-n $ name2]
In die skrif hierbo het ek getoets of $ name2 'n waarde gegee is en as dit nie die boodskap "Daar is geen bob nie, was daar nooit 'n bob nie".
04 van 08
Beginnersgids tot BASH - Strings vergelyk
Op die vorige skyf het ons gedek of 'n veranderlike gestel is of nie. Soms is 'n veranderlike dalk ingestel, maar dit mag dalk nie eintlik 'n waarde hê nie.
Byvoorbeeld:
naam1 = ""
Om te toets of 'n veranderlike 'n waarde het of nie (dws 'n lengte van nul het) gebruik -z soos volg:
as [-z $ name1]
In die bostaande skrip het ek $ name1 tot 'n nul-lengte-string gestel en dan vergelyk dit met -z. As $ name1 nul is, sal die boodskap "gary uitgegaan het vir die aand" vertoon word.
05 van 08
Beginnersgids tot BASH - Vergelyking van Getalle
Tot dusver was al die vergelykings vir snare. Hoe gaan dit met die vergelyking van getalle?
Bogenoemde skrip toon 'n voorbeeld van vergelyking van twee getalle:
#! / bin / bash
a = 4
b = 5as [$ a = $ b]
dan
eggo "4 = 5"
anders
echo "4 is nie gelyk aan 5"
fi
Om 'n veranderlike as 'n nommer te stel, stel dit eenvoudig sonder aanhalingstekens. U kan dan die getalle vergelyk met 'n gelyke teken.
Ek verkies egter om die volgende operateur te gebruik om twee getalle te vergelyk:
As [$ a -qq $ b]
06 van 08
Beginnersgids tot BASH - Vergelyking van Getalle
As jy wil vergelyk of 'n getal minder is as 'n ander nommer, kan jy die minder as operateur (<) gebruik. Soos met snare moet jy die minder as operateur met 'n skuinsvlug ontsnap. (\ <).
'N Beter manier om getalle te vergelyk, is om die volgende notasie te gebruik:
- Minder as -lt
- Minder as of gelyk aan -le
- Groter as -gt
- Groter as of gelyk aan -gee
Byvoorbeeld:
as [$ a -lt $ b]
as [$ a -le $ b]
as [$ a -ge $ b]
as [$ a -gt $ b]
07 van 08
Beginnersgids tot BASH - Vergelyking van Getalle
Ten slotte vir hierdie gids, as jy wil toets of twee getalle anders is, kan jy die minder as en groter as die operateurs (<>) of -ne soos volg gebruik:
as [$ a <> $ b]
as [$ a -ne $ b]
08 van 08
Beginnersgids tot BASH - Vergelyking Operateurs - Opsomming
As u die eerste drie dele van hierdie gids gemis het, kan u dit vind deur op die volgende skakels te kliek:
In die volgende gedeelte van die gids sal ek rekenkunde dek.