What are exit codes in Linux?

Sachithra_Manamperi
3 min readOct 28, 2022

--

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.
  2. Failed due to an error.
  3. Or another state that implies an unexpected outcome.

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:

Explanation

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.
  2. When we used the command cat demofile.txt, it failed with the following error: There is no such file or directory, and a failure is indicated by the return code of 1.

Reserved exit codes

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

Explanation

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

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Sachithra_Manamperi
Sachithra_Manamperi

Written by Sachithra_Manamperi

🚀 DevOps Engineer | 🎓 Software Engineering Graduate | 🇱🇰 Sri Lankan | 💻 Passionate about Cloud Native tech

No responses yet

Write a response