Bourne Shell Exit Status Examples For Linux and Unix

last updated in Categories , ,

Can you explains and provide us “Bourne Shell Exit Status Code” examples?

Each UNIX command returns a status when it terminates. If it is not successful, it returns a code which tells the shell to print an error message. You can use the
exit command to leave a shell program with a certain exit status.


Typical Values Of Exit Status On Bourne Shell

  • 0 – Success.
  • 1 – A built-in command failure.
  • 2 – A syntax error has occurred.
  • 3 – Signal received that is not trapped.

How do I print exit status when using bourne shell?

Type the command:
$ ls
To print its exit status type the command:
$ echo $?
Try a few more examples:
echo $?
echo $?
cat /etc/passwd
echo $?
grep vivek /etc/passwd
echo $?

Bourne Shell Exit Status Examples For Unix Command
Linux or Unix exit code tutorial for /bin/sh with examples

How to store or use exit codes in scripts

To store exit status of the last executed command to a shell variable called status, enter:

You can use exit status with test command or if command too.

if grep "$user" /etc/passwd; then
        echo "$user has an account"
        echo "$user doesn't have an account"

Run it as follows:
./script-name vivek
The grep command is used as condition but it can actually be any command. If it returns a zero exit status, the condition is true; otherwise, it is false. In this example, the while loop executes given commands as long as condition is true. Again, condition can be any command, and is true if the command exits with a zero exit status.

while condition; do

Here is another simple example:

while [ $x != 3 ]
     let x=x+1
    echo $x

Here is another example:

while [ -r "$1" ]
    cat $1 >> output

Run it as follows:
./script-name file1 file2 fil3
cat output

How to set an exit code value for my own script

To set an exit code in your script use:
exit N
exit 0
exit 999


This page showed how to get exit status of command when using Bourne shell (sh). For more info see:


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Start the discussion at

Historical Comment Archive