3.1. exit and exit status

The exit command may be used to terminate a script, just as in a C program. It can also return a value, which is available to the shell.

Every command returns an exit status (sometimes referred to as a return status ). A successful command returns a 0, while an unsuccessful one returns a non-zero value that usually may be interpreted as an error code.

Likewise, functions within a script and the script itself return an exit status. The last command executed in the function or script determines the exit status. Within a script, an exit nn command may be used to deliver an nn exit status to the shell (nn must be a decimal number in the 0 - 255 range).

$? reads the exit status of script or function.

Example 3-1. exit / exit status

#!/bin/bash

echo hello
echo $?
# exit status 0 returned
# because command successful.

lskdf
# bad command
echo $?
# non-zero exit status returned.

echo

exit 143
# Will return 143 to shell.
# To verify this, type $? after script terminates.

# By convention, an 'exit 0' shows success,
# while a non-zero exit value indicates an error or anomalous condition.

# It is also appropriate for the script to use the exit status
# to communicate with other processes, as when in a pipe with other scripts.