Home » Bash » Check exit status of commands in Linux

Check exit status of commands in Linux

Follow Us

Our Communities

Automation using shell scripts involves checking whether an earlier command executed successfully, whether a file is present, and so on. You will learn various constructs such as if, case, and so on, where we will need to check whether certain conditions are true or false. Accordingly, our script should conditionally execute various commands.

Let’s enter the following command:

$ ls

Using the Bash shell, we can check whether the preceding command executed successfully  as follows:

$ echo $?

The preceding command will return 0 if the ls command executed successfully. The result will be non-zero, such as 1 or 2 or any other non-zero number, if the command has failed. The Bash shell stores the status of the last command execution in a variable. If we need to check the status of the last command execution, then we should check the content of the variable.

Let’s take the following example:

$ x=10$ y=20$ (( x < y ))
$ echo $?0

This indicates that the $(( x < y )) expression has executed successfully.

Let’s look at the same concept in the case of string handling:

$ name=Ganesh$ grep "$name"  /etc/passwd Ganesh:9ZAC5G:6283:40:Ganesh Naik:/home/ganesh:/bin/sh
$ echo $?0

Since the user Ganesh has already been created on the computer, the string Ganesh was found in the /etc/passwd file.

$ name=John$ grep "$name" /etc/passwd
$ echo $?1        # non zero values means error

Since the user John was not found in the /etc/passwd file, the grep command returned a non-zero value. In scripts, we can use this during automation.


Submit a Comment

Your email address will not be published. Required fields are marked *

twelve + twelve =