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

Bash escape quotes

Quoting is used to disable the special meaning of the special characters. There are many shell metacharacters which have...
29/12/2020

Bash script to send email

Email is a very common communication medium in today’s world now. Anyone can easily communicate or share any document...
29/12/2020

Bash ‘mkdir’ not existent path

‘mkdir’ is the basic built-in shell command of Linux to create a new directory or folder from the terminal. You can...
29/12/2020
Bài Viết

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

SỰ KHÁC BIỆT GIỮA RESIDENTIAL PROXY VÀ PROXY DATACENTER
17/02/2024

Mua Proxy v6 US Private chạy PRE, Face, Insta, Gmail
07/01/2024

Mua shadowsocks và hướng dẫn sữ dụng trên window
05/01/2024

Tại sao Proxy Socks lại được ưa chuộng hơn Proxy HTTP?
04/01/2024

Mua thuê proxy v4 nuôi zalo chất lượng cao, kinh nghiệm tránh quét tài khoản zalo
02/01/2024