Exit code

Een exit code (ook exit status) is het getal dat een programma teruggeeft bij afsluiten: 0 betekent geslaagd, alles anders betekent mislukt. Shells en scripts gebruiken dit om te beslissen wat er daarna gebeurt.

Opvragen

De shell bewaart de exit code van het laatste commando in $?:

grep root /etc/passwd
echo $?             # 0: gevonden
grep bestaatniet /etc/passwd
echo $?             # 1: niet gevonden

Gangbare waarden

CodeBetekenis
0Geslaagd
1Algemene fout
2Verkeerd gebruik (bijv. onbekende optie)
126Bestand niet uitvoerbaar
127Commando niet gevonden
128+nBeëindigd door signaal n (137 = 128 + SIGKILL 9)

Alleen 0 is gestandaardiseerd; de rest is conventie en verschilt per programma. grep gebruikt bijvoorbeeld 1 voor "geen match" en 2 voor "echte fout".

In scripts

De operatoren && en || reageren op de exit code:

make && make install        # install alleen na geslaagde build
ping -c1 host || echo "onbereikbaar"
set -e                      # script stoppen bij de eerste fout

Zie ook

  • shell — waar exit codes worden geëvalueerd
  • bash$?, && en set -e
  • signal — de bron van codes boven 128
  • pipe — exit codes in pijplijnen (pipefail)
linuxshellscripting