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ả
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ả
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:
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:
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ụ.