next up previous contents index
Next: Kommando-sekvensar Up: Skall-programmering Previous: Kommandoen wait

Skall-funksjonar

I tillegg til å kunne lage skall-program ved å samle kommandoar i tekst-filar, går det an å lage såkalle skall-funksjonar. Desse er meir effektive enn skall-program men er mykje vanskelegare å kontrollere, fordi dei er definerte direkte til skallet og har ikkje eit permanent liv som i ei fil. Når ein definerer ein skall-funksjon så les det aktive skallet definisjonen, og skall-funksjonen vert lagra inne i det aktive skallet. Ein kan utføre funksjonen som alle andre kommandoar eller skall-program, men nå ein stoppar skallet eller loggar ut er funksjonen borte. Skall-funksjonar går ikkje an å eksportere og dei er heller ikkje automatisk tilgjengeleg i sub-skall, skal dei vere tilgjengelege i sub-skall må dei lesast inn av sub-skallet. Skall-funksjonar blir definert på formen:

zevs% namn () }
>				 kommando-liste
>		}
zevs%
der namn kan vere vilkårleg namn. Parantesane () vere med, og tegnet { startar kommando-lista. Skall-variablane $#, $* og posisjonsparametrane $1 til $9 er tilgjengelege innanfor funksjonen.

zevs% vis () {
>		 echo $1
>		 echo $2
>		 exit 0
>		 }
zevs% vis andre forste
forste
andre
zevs%
Dette definerer ein skall-funksjon som skriv ut dei to første parametrane og returnerer ein verdi paa null tilbake til skallet. Dersom ein har mange skall-program som ein brukar veldig mykje kan ein spare ein del når det gjeld ytelse ved å definere dei som skall-funksjonar. Då kan ein definere skall-funksjonane i oppstart-filane for skallet, dermed vil dei alltid vere tilgjengeleg når ein har bruk for dei.
next up previous contents index
Next: Kommando-sekvensar Up: Skall-programmering Previous: Kommandoen wait
Trond.Kandal@itea.ntnu.no