Logo

Personal Ops Runbook

Personal runbook covering infrastructure operations for Cloud, Kubernetes, OpenStack, and Ceph environments. Includes deployment and teardown procedures, node management, cluster monitoring setup, and incident response workflows compiled from day-to-day operational work. Intended strictly for personal reference — configurations and scripts are environment-specific and not guaranteed to work as-is elsewhere.

[Bash] Lesson 14 – Bash If Else Statement


Bash If Else

Trong chủ đề này, chúng ta sẽ tìm hiểu cách sử dụng câu lệnh if-else trong các script Bash để hoàn thành các tác vụ tự động.

Câu lệnh if-else trong Bash được sử dụng để thực hiện các tác vụ có điều kiện trong luồng thực hiện các câu lệnh tuần tự. Đôi khi, chúng ta muốn xử lý một tập hợp cụ thể các câu lệnh nếu một điều kiện là đúng và một tập hợp khác của câu lệnh nếu điều kiện đó là sai. Để thực hiện các hành động loại đó, chúng ta có thể áp dụng cơ chế if-else. Chúng ta có thể áp dụng điều kiện với câu lệnh ‘if’.

Cú pháp If Else trong Bash

Cú pháp của câu lệnh if-else trong Bash Shell Scripting có thể được định nghĩa như sau:

if [ condition ];
then
   <if block commands>
else
  <else block commands>
fi

Điểm quan trọng cần nhớ:

Chúng ta có thể sử dụng một tập hợp một hoặc nhiều điều kiện được nối với các toán tử điều kiện. Lệnh trong khối else bao gồm một tập hợp các hành động để thực hiện khi điều kiện là sai. Dấu chấm phẩy (;) sau biểu thức điều kiện là bắt buộc.

Xem các ví dụ sau đây để minh họa việc sử dụng câu lệnh if-else trong Bash Script:

Ví dụ 1

Ví dụ sau bao gồm hai kịch bản khác nhau trong đó trong câu lệnh if-else đầu tiên, điều kiện là đúng và trong câu lệnh if-else thứ hai, điều kiện là sai.

#!/bin/bash

#when the condition is true
if [ 10 -gt 3 ];
then
  echo "10 is greater than 3."
else
  echo "10 is not greater than 3."
fi

#when the condition is false
if [ 3 -gt 10 ];
then
  echo "3 is greater than 10."
else
  echo "3 is not greater than 10."
fi

Kết quả

image

Trong biểu thức if-else đầu tiên, điều kiện (10 -gt 3) là đúng nên câu lệnh trong khối if được thực thi. Trong khi đó, trong biểu thức if-else khác, điều kiện (3 -gt 10) là sai nên câu lệnh trong khối else được thực thi.

Ví dụ 2

Trong ví dụ này, chúng ta sẽ giải thích cách sử dụng nhiều điều kiện với câu lệnh if-else trong Bash. Chúng ta sử dụng các toán tử logic Bash để kết hợp nhiều điều kiện.

#!/bin/bash

# When condition is true
# TRUE && FALSE || FALSE || TRUE
if [[ 10 -gt 9 && 10 == 9 || 2 -lt 1 || 25 -gt 20 ]];
then
  echo "Given condition is true."
else
  echo "Given condition is false."
fi

# When condition is false
#TRUE && FALSE || FALSE || TRUE
if [[ 10 -gt 9 && 10 == 8 || 3 -gt 4 || 8 -gt 8 ]];
then
  echo "Given condition is true."
else
  echo "Given condition is not true."
fi

Kết quả

image

Câu lệnh Bash If Else trong một dòng

Chúng ta có thể viết toàn bộ ‘câu lệnh if-else’ cùng với các lệnh trong một dòng duy nhất. Bạn cần tuân theo các quy tắc sau để sử dụng câu lệnh if-else trong một dòng:

Sử dụng dấu chấm phẩy (;) ở cuối các lệnh trong các khối if và else. Sử dụng khoảng trống làm phân tách để gộp tất cả các lệnh. Một ví dụ được đưa ra bên dưới để minh họa cách sử dụng câu lệnh if-else trong một dòng:

Ví dụ

#!/bin/bash

read -p "Enter a value:" value
if [ $value -gt 9 ]; then echo "The value you typed is greater than 9."; else echo "The value you typed is not greater than 9."; fi

Khi chúng ta nhập giá trị là 25, thì đầu ra sẽ như sau:

image

Bash Nested If Else (If-Else Lồng nhau trong Bash)

Tương tự như lệnh if lồng nhau, lệnh if-else cũng có thể được sử dụng bên trong một lệnh if-else khác. Điều này được gọi là lệnh if-else lồng nhau trong Bash scripting.

Dưới đây là một ví dụ giải thích cách sử dụng lệnh if-else lồng nhau trong Bash:

Ví dụ

#!/bin/bash

read -p "Enter a value:" value
if [ $value -gt 9 ];
then
  if [ $value -lt 11 ];
  then
     echo "$value>9, $value<11"
  else
    echo "The value you typed is greater than 9."
  fi
else echo "The value you typed is not greater than 9."
fi

Nếu chúng ta nhập giá trị là 10, thì đầu ra sẽ như sau:

image

Kết luận

Trong chủ đề này, chúng ta đã tìm hiểu về cú pháp và cách sử dụng câu lệnh if-else trong Bash với các ví dụ.