next up previous contents index
Next: Filsystemet Up: Skallet Previous: Standard inn og standard

Returverdiar frå kommandoar

I likhet med standard ut, standard inn og standard feilmelding, returnerer kommandoar ein numerisk verdi til skallet. Denne returverdi  blir vanlegvis ikkje vist på skjermen. Verdien er vanlegvis 0 ( null ) dersom kommandoen fullførte utan feil og ulik 0 ( null ) dersom det oppstod feil. Denne feilverdien er veldig kommandoavhengig, verdien kan variere f.o.m 0 t.o.m 255. Vanlegvis er forskjellige grunnar for feil gjenspeila i returverdien frå programmet. Returverdien kan ein få tak i ved å bruke variabelen $?, som er sett til holde returverdien etter kvar kommando. Dersom ein har tenkt å lagre verdien, må ein lagre verdien i ein anna miljøvariabel før neste kommando. Eksempel:

$ ls
kjerne.ps
kurs.aux
kurs.dvi
kurs.log
kurs.ps
kurs.tex
kurs.toc
latex.log
program.ps
rettigheter.ps
skall.ps
$ echo $?
0
$ cat eifil
cat: eifil: No such file or directory
$ echo $?
1
$ echo $?
0
$
Som vi ser så gjekk ls-kommandoen utan feil, så prøvde vi å vise innholdet på ei fil som ikkje eksisterte, då vart returverdien sett til 1. Den siste gongen vi skreiv ut returverdien hadde den igjen vorte 0, dette var returverdien frå den forrige echo-kommandoen som fullførte utan feil. Eigentleg er ikkje $? ein miljø-variabel, men ein skall-variabel. Desse variablane er ikkje tilgjengeleg på same måten som ekte miljø-variable, dei blir oppdaterte av skallet og ikkje av kommandoar. Skall-variable  har namn som bestå av eit tegn, dersom ein vil sjå verdien må ein sette ein $ framfor namnet. I tilleg til ? finst det ein del andre skall-variable som f.eks skigard-tegnet ( # ), som inneheld antal kommando-linje parametre til dette skallet, og $ som angjev prosess-identiteten til dette skallet. Desse variablane skal vi ikkje gå gjennom i denne omgang,- seinare vil vi sjå at desse har ein stor betydning for skall-programmering.
next up previous contents index
Next: Filsystemet Up: Skallet Previous: Standard inn og standard
Trond.Kandal@itea.ntnu.no