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 Split String Examples

We need to split the string data for various purposes in the programming. Many programming languages have a built-in function...
29/12/2020

30 Bash loop examples

Three types of loops are used in bash for various purposes. These are for, while and until loops. The different uses of...
29/12/2020

Shell scripts – What can you change

In most, if not all, shells, you have a script that starts your shell. Learn how to change it and you can have your own...
29/12/2020
Bài Viết

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

Dịch Vụ Xây Dựng Hệ Thống Peering Với Internet Exchange (IXP)
04/04/2025

Dịch Vụ Triển Khai VPN Site-to-Site & Remote Access
04/04/2025

Dịch Vụ Thiết Lập Hệ Thống Tường Lửa (Firewall)
04/04/2025

Dịch Vụ Triển Khai Hệ Thống Ảo Hóa & Cloud
04/04/2025

Dịch Vụ Triển Khai Hệ Thống Ceph
04/04/2025