4.1.5.2. Ending processes
When a process ends normally (it is not killed or otherwise
unexpectedly interrupted), the program returns its exit
status to the parent. This exit status is a number returned by
the program providing the results of the program's execution. The
system of returning information upon executing a job has its origin
in the C programming language in which UNIX has been written.
The return codes can then be interpreted by the parent, or in
scripts. The values of the return codes are program-specific. This
information can usually be found in the man pages of the specified
program, for example the grep command
returns -1 if no matches are found,
upon which a message on the lines of "No files
found" can be printed. Another example is the Bash builtin command true, which does nothing except return an exit status
of 0, meaning success.