Magazine

Check Exit Status of Commands in Linux

Posted on the 11 April 2021 by Satish Kumar @satish_kumar86

Automation using shell scripts involves checkingwhetheran earlier command executed successfully, whether a file is present, and so on. You will learn various constructs such asif,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 thelscommand 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.


Back to Featured Articles on Logo Paperblog