next up previous contents index
Next: Operatoren for Up: Skall-programmering Previous: Kommandoen exit

Kommandoen expr

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 up previous contents index
Next: Operatoren for Up: Skall-programmering Previous: Kommandoen exit
Trond.Kandal@itea.ntnu.no