Checking the exit status of commands
Automation using Shell scripts involves checking if the earlier command executed successfully or failed, if the file is present or not, 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 if the preceding command executed successfully or failed as follows:
$ echo $?
The preceding command will return 0, if the ls
command executed successfully. The result will be nonzero, such as 1 or 2 or any other nonzero 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 see the following example:
$ x=10 $ y=20 $ (( x < y )) $ echo $? 0
This indicates...