What are exit codes in Linux?

An exit code in Linux represents the result of the execution of a command or script.

It has a scale ranging from 0 to 255. The exit codes help us determine whether a process ran:

  1. Successfully.

As soon as the command or script has done executing, we can use $? to get the exit code of the process.

The Exit codes of any command are stored in a special built-in variable called $?. When a command is successful, a zero is returned. when a command fails it returns a value greater than zero.

The $? variable is updated immediately after a command is executed. so the value of this variable is only reliable right after running a command

Note: Exit codes are also known as return codes.

For successful commands, it returns a 0

It will return a non-zero value when a command is not valid

Here’s an example:

In the above example:

  1. The command echo “Hello There!” was executed, and the result was printed on the line after. The command echo $? was then executed, and when it returned 0 as output, it was successful.

There are several reserved exit codes in Linux that have unique meanings. Here’s the list of exit codes:

1: Catchall for general errors

2: Misuse of shell built-ins (according to Bash documentation)

126: Command invoked cannot execute

127: “Command not found.”

128: Invalid argument to exit

128+n: Fatal error signal “n”

130: Script terminated by Control-C

255\*: Exit status out of range

In a shell script, exit codes are typically used to check the status and take appropriate action.

To test for a common use case and determine whether the command executes successfully, we run several commands in a shell script.

Let’s create a shell script file call check.sh

# run_some_command

if [ $? -eq 0 ]; then

echo OK

else

echo FAIL

fi

The above code determines whether the return code is equal to 0. If so, we can echo “OK.” If not, we iterate FAIL.

Best Practice: Always return appropriate exit codes in your script because It will help to integrate with other scripts

Scroll to Top