Next: Operatoren for
Up: Skall-programmering
Previous: Kommandoen exit
Sjølv om programmeringsspråket under skallet ikkje er
optimalisert for kalkulasjonar, har det kommandoar som kan gjere
utrekningar. Kommandoen expr ( expression ) er
den som er mest brukbar til dette formålet. Den tek nummer
og aritmetriske operatorar som argument, reknar ut resultatet og
skriv svaret til standard ut.
zevs% expr 4 + 6
10
zevs%
Det går sjølvsagt an å spesifisere lengre kommandoar,
men ver oppmerksom på at alle argument må skillast med
mellomrom eller tabulator,- dette fordi expr oppfattar
argument som del av uttrykket som den skal evaluere.
Operatorane som er lovlege,- heiltal, + ( pluss ), - ( minus ),
* ( multiplikasjon ), / ( divisjon ), % ( rest etter divisjon [
modulus ] ). Husk alltid på unnta tegna *
og / ved å sette [IMAGE ] ( bakslask ) framfor
slik at ikkje skallet oppfattar dei som spesialtegn før dei
vert sendt til expr.
zevs% expr 3 [IMAGE ]* 4 + 2 [IMAGE ]/ 2
13
zevs%
Normale presedens reglar vert brukt slik at multiplikasjon og
divisjon vert utført før addisjon og subtraksjon. Ein kan
forandre presedensen ved å utføre komplekse kalkulasjonar
i fleire omgangar.
zevs% VAL=`expr 3 [IMAGE ]* 4 + 2`
zevs% expr $VAL [IMAGE ]/ 2
7
zevs%
I tillegg kan ein gruppere operasjonar innanfor parentesar,- her
må ein også passe på å unnta parentesar for
spesial-betydning ved åsette [IMAGE ] ( bakslask )
framfor.
zevs% expr 3 [IMAGE ]* [IMAGE ]( 4 + 3 [IMAGE ])[IMAGE ]/ 2
10zevs%
Kommandoen kan også utføre logiske operasjonar,-
den kan avgjere om eit argument er større,
mindre, lik ...osv. enn eit anna argument.
Lovlege operatorar er :
= Lik.
!= Ulik.
> Større.
< Mindre.
<= Mindre eller lik.
>= Større eller lik.
Desse tegna er også spesial-tegn for skallet, derfor må
også desse brukast saman med [IMAGE ] ( bakslask ).
zevs% X=`expr 4 [IMAGE ] 5`
zevs% echo $X
1
zevs% X=`expr 4 = 5`
zevs% echo $X
0
zevs%
Dersom argumenta for desse logiske operatorane er nummer, vil
expr utføre numeriske samanlikning. Er dei strengar
vil expr lage samanlikningar basert på rekkefølgen
i ASCII-tabellen.
Next: Operatoren for
Up: Skall-programmering
Previous: Kommandoen exit
Trond.Kandal@itea.ntnu.no