Bash exit on error

29/12/2020
An exit status code is returned when any Linux command is executed from the terminal, either the command is successful or unsuccessful. This status code can be used to show the error message for unsuccessful execution or perform any particular task by using shell script. The exit status code always represents by a number. The value of this code is 0 for the successful execution of any Linux command and it returns any number from 1 to 255 for the unsuccessful execution of the command. How the exist status code can be used from the terminal and in the bash script are shown in this tutorial.

Some common error status codes are mention below.

Code Description Comments
0 It indicates successful execution.
1 It is used to catch all general errors. “Divide by zero”, “Operation not permitted” etc. can be the error messages of this code.
2 It indicates the abuse of shell built-ins. “Missing keyword”, “No such file or directory” etc. can be the error messages of this code.
126 It generates when the any command is unable to execute. Permission problem or required key not available can generate this status code
127 It normally generates for the command path problem. “Command not found” can be the message for this error code.
130 It generates for fatal error. “Script terminated by Ctrl+C” can be the message of this code.
255* It indicates exit code out of range.

Example-1: Reading exit code from the terminal

‘$?’ shell variable can be used to display the exit code of any command. ‘ls –la’ is a valid command and it shows the list of files and folders of the current working directory. The value of ‘$?’ will be 0 after executing ‘ls -la’ command. ‘ls –xyz’ is an invalid command and ‘$?’ will return 2 as error code after executing the command.

$ ls -la
$ echo $?
$ ls -xyz
$ echo $?

Example-2: Reading exit code in bash script

Create a bash file named read_file.sh with the following script. In this script, the file name will be taken as user’s input and, total number of lines, words and characters of that file will be counted by using `wc` command. If the file name is valid then the value of $status_code is 0 and if the file name is invalid, then then the value of $status_code is 1.

read_file.sh

#!/bin/bash
echo "Enter the filename"
read filename
wc -lwc $filename
status_code=$?
echo "The exit of ‘wc’ command is : $status_code"

Example-3: Using exit code value for doing specific task

Create a bash file named read_month.sh with the following code. Here, a date value will be taken as input. The name of the month will retrieve from the date value if the input date is valid otherwise “invalid date” error message will appear.  ‘if’ condition is used in the script to check the exit status code of the date command. If the condition is true, then the success message and month name of the date will be printed. If the condition is false, then the failure message and exit status code, 1 will print.

read_month.sh

#!/bin/bash
echo "Enter a date in the format: YYYY-MM-DD"
read date_value
current_month=$(date -d "$date_value" ‘+%B’)
if [ $? -eq 0 ]
then
echo "Date command is executed Successfully"
echo "Current month is $current_month"
else
echo "Date command is not executed Successfully"
exit 1
fi

Run the script.

$ bash read_month.sh

Example-4: Using && and || with exit code

‘&&’ Logical operator is used for successful exit code and ‘||’ logical operator is used for unsuccessful exit code. The following command will print ‘File exists’ if book.txt file exists in the current location and print ‘File not exists’ if book.txt file not exists in the current location.

$ cat book.txt && echo "File exists" || echo "File not exists"

Conclusion:

Different uses of exit status code are shown in this tutorial. Hope, the reader will get a clear concept about exit status code of bash after reading this tutorial.

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

NFS Server and Client Installation on CentOS 7

1 Preliminary Note I have fresh installed CentOS 7 server, on which I am going to install the NFS server. My CentOS server...
01/11/2021

tput, printf and shell expansions: how to create awesome outputs with bash scripts?

1. Why are good outputs so important in bash scripts? There are many, many times when you, as a system administrator, need...
28/12/2020

Bash Arithmetic Operations

Doing arithmetic operations in bash is not similar to other standard programming languages. One of the limitations of bash...
29/12/2020
Bài Viết

Bài Viết Mới Cập Nhật

Tìm Hiểu Về Thuê Proxy US – Lợi Ích và Cách Sử Dụng Hiệu Quả
11/12/2024

Mua Proxy V6 Nuôi Facebook Spam Hiệu Quả Tại Onetcomvn
03/06/2024

Hướng dẫn cách sử dụng ProxyDroid để duyệt web ẩn danh
03/06/2024

Mua proxy Onet uy tín tại Onet.com.vn
03/06/2024

Thuê mua IPv4 giá rẻ, tốc độ nhanh, uy tín #1
28/05/2024