How Do We Check The Exit Status In Bash

Shell Programming

Hey there, fellow bash enthusiasts! Today, I want to delve into the nitty-gritty of how we can check the exit status in a bash script. As someone who’s spent countless hours debugging scripts and troubleshooting errors, I can attest to the importance of understanding how to effectively check the exit status.

What is Exit Status?

Before we dive into the practical aspects of checking the exit status, let’s quickly touch on what it actually is. In the context of bash scripting, the exit status provides a numerical value that signifies the outcome of the execution of a command or script. A successful execution typically results in an exit status of 0, while an unsuccessful or erroneous execution produces a non-zero exit status.

Using the $? Variable

One of the fundamental methods for checking the exit status is by utilizing the $? variable. After a command or script has been executed, you can retrieve the exit status by simply accessing the value of $?. Here’s a quick example:

echo $?

In this example, the ls command is executed, and then we print the exit status using echo $?.

Conditional Execution based on Exit Status

Understanding the exit status is crucial when it comes to building robust and resilient scripts. By leveraging the exit status, we can implement conditional logic to handle different scenarios. For instance, using the exit status to determine whether a command succeeded or failed, and then proceeding with specific actions accordingly.

Advanced Techniques

Besides the basic usage of $?, there are advanced techniques for working with exit status in bash. For instance, we can employ logical AND (&&) and logical OR (||) to control the flow based on the exit status. This can be especially handy in constructing complex command sequences with error handling.


Checking the exit status in bash is an indispensable skill for anyone working with shell scripting. By understanding the exit status and how to effectively utilize it, we can build more robust, error-tolerant scripts. So, the next time you’re writing a bash script, don’t forget to consider how you’ll handle the exit status!