Monday, January 20, 2025

[Bash] Lesson 13 – Bash If

-

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

Lệnh if trong Bash rất hữu ích. Chúng được sử dụng để thực hiện các tác vụ có điều kiện trong luồng thực thi tuần tự của các câu lệnh. Lệnh if thường cho phép chúng ta đưa ra quyết định trong các tập lệnh Bash của mình. Chúng giúp chúng ta quyết định có chạy một đoạn mã được cho trước hay không dựa trên điều kiện mà chúng ta có thể đặt.

Các Lệnh if Cơ Bản
Lệnh if cơ bản chỉ ra rằng nếu một điều kiện cụ thể là đúng, thì chỉ thực hiện một tập hợp hành động được cho trước. Nếu nó không đúng, thì không thực hiện những hành động đó. Lệnh if được dựa trên định dạng sau:

if [ expression ];  
then  
statements  
fi  

Câu lệnh giữa thenfi chỉ được thực thi khi biểu thức (nằm giữa hai dấu ngoặc vuông) là đúng.

Lưu ý: Chú ý đến khoảng trắng được sử dụng ở dòng đầu tiên và dấu chấm phẩy ở cuối dòng đầu tiên; cả hai đều là bắt buộc phải sử dụng. Câu lệnh điều kiện kết thúc bằng fi. Để sử dụng nhiều điều kiện với toán tử AND:

if [ expression_1 ] && [ expression_2 ];  
then  
statements  
fi  

Để sử dụng nhiều điều kiện với toán tử OR, chúng ta có thể sử dụng cú pháp sau:

if [ expression_1 ] || [ expression_2 ];  
then  
statements  
fi  

Để sử dụng biểu thức phức hợp với các toán tử AND và OR, chúng ta có thể sử dụng cú pháp sau:

if [ expression_1 && expression_2 || expression_3 ];  
then  
statements  
fi  

Dưới đây là một vài ví dụ minh họa về cách sử dụng câu lệnh if:

Ví dụ 1

Trong ví dụ này, chúng ta sẽ nhập một số bất kỳ từ người dùng và kiểm tra xem giá trị đó có lớn hơn 125 không.

#!/bin/bash  
  
read -p " Enter number : " number  
  
if [ $number -gt 125 ]  
then  
echo "Value is greater than 125"  
fi

Kết quả nếu chúng ta nhập số 159 sẽ như sau:

Ví dụ 2:

Trong ví dụ này, chúng ta sẽ minh họa cách sử dụng lệnh if để so sánh hai chuỗi:

#!/bin/bash  
  
# if condition is true  
if [ "myfile" == "myfile" ];  
then  
echo "true condition"  
fi  
  
# if condition is false  
if [ "myfile" == "yourfile" ];  
then  
echo "false condition"  
fi 

Kết quả

Ví dụ 3

Trong ví dụ này, chúng ta sử dụng câu lệnh if để so sánh hai số và kiểm tra số nào lớn hơn.

Ví dụ 4

Trong ví dụ này, chúng ta sử dụng câu lệnh if để so sánh hai số và kiểm tra số nào lớn hơn.

#!/bin/bash  
  
#if condition (greater than) is true  
if [ 10 -gt 3 ];  
then  
echo "10 is greater than 3."  
fi  
  
#if condition (greater than) is false  
if [ 3 -gt 10 ];  
then  
echo "3 is not greater than 10."  
fi  
  
#if condition (lesser than) is true  
if [ 3 -lt 10 ];  
then  
echo "3 is less than 10."  
fi  
  
#if condition (lesser than) is false  
if [ 10 -lt 3 ];  
then  
echo "10 is not less than 3."  
fi  
  
#if condition (equal to) is true  
if [ 10 -eq 10 ];  
then  
echo "10 is equal to 10."  
fi  
  
#if condition (equal to) is false  
if [ 10 -eq 9 ];  
then  
echo "10 is not equal to 9"  
fi  

Kết quả

Ví dụ 4

Trong ví dụ này, chúng ta sẽ định nghĩa cách sử dụng toán tử AND để bao gồm nhiều điều kiện trong biểu thức if:

#!/bin/bash  
  
# TRUE && TRUE  
if [ 8 -gt 6 ] && [ 10 -eq 10 ];  
then  
echo "Conditions are true"  
fi  
  
# TRUE && FALSE  
if [ "mylife" == "mylife" ] && [ 3 -gt 10 ];  
then  
echo "Conditions are false"  
fi  

Kết quả

Ví dụ 5:

Trong ví dụ này, chúng ta sẽ mô tả cách sử dụng toán tử OR để bao gồm nhiều điều kiện trong biểu thức if:

#!/bin/bash  
  
# TRUE || FALSE  
if [ 8 -gt 7 ] || [ 10 -eq 3 ];  
then   
echo " Condition is true. "  
fi  
  
# FALSE || FALSE  
if [ "mylife" == "yourlife" ] || [ 3 -gt 10 ];  
then  
echo " Condition is false. "  
fi  

Kết quả

Ví dụ 6:

Trong ví dụ này, chúng ta sẽ giải thích cách sử dụng cả toán tử AND và OR để đưa nhiều điều kiện vào biểu thức if:

#!/bin/bash  
  
# TRUE && FALSE || FALSE || TRUE  
if [[ 10 -eq 10 && 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]];  
then  
echo "Condition is true."  
fi  
  
# TRUE && FALSE || FALSE  
if [[ 8 -eq 8 && 8 -gt 10 || 9 -lt 5 ]];  
then  
echo "Condition is false"  
fi  

Kết quả

Các tùy chọn cho câu lệnh If trong Bash Scripting

Câu lệnh If trong Bash Scripting có nhiều tùy chọn để thực hiện một tác vụ cụ thể. Các tùy chọn này có thể được sử dụng cho các hoạt động file, hoạt động chuỗi văn bản, v.v. Dưới đây là một số tùy chọn được sử dụng phổ biến:

Hành độngMô tả
! EXPRESSIONKiểm tra nếu biểu thức EXPRESSION là sai (false)
-n STRINGKiểm tra nếu độ dài của chuỗi STRING lớn hơn không
-z STRINGKiểm tra nếu độ dài của chuỗi STRING bằng không (tức là chuỗi rỗng)
STRING1 == STRING2Kiểm tra nếu chuỗi STRING1 bằng chuỗi STRING2
STRING1 != STRING2Kiểm tra nếu chuỗi STRING1 khác chuỗi STRING2
INTEGER1 -eq INTEGER2Kiểm tra nếu số nguyên INTEGER1 bằng số nguyên INTEGER2
INTEGER1 -gt INTEGER2Kiểm tra nếu số nguyên INTEGER1 lớn hơn số nguyên INTEGER2
INTEGER1 -lt INTEGER2Kiểm tra nếu số nguyên INTEGER1 nhỏ hơn số nguyên INTEGER2
-d FILEKiểm tra nếu FILE tồn tại và là thư mục
-e FILEKiểm tra nếu FILE tồn tại
-r FILEKiểm tra nếu FILE tồn tại và được cấp quyền đọc
-s FILEKiểm tra nếu FILE tồn tại và kích thước của nó lớn hơn không (tức là không rỗng)
-w FILEKiểm tra nếu FILE tồn tại và được cấp quyền ghi
-x FILEKiểm tra nếu FILE tồn tại và được cấp quyền thực thi

If lồng nhau

Bạn có thể áp dụng nhiều ‘if statements’ tùy ý trong tập lệnh Bash của mình. Cũng có thể sử dụng một câu lệnh if bên trong một câu lệnh ‘if statement’ khác. Đó được gọi là Nested If Statement.

Trong ví dụ này, chúng ta sẽ tìm “nếu một số đã cho lớn hơn 50 và nếu đó là một số chẵn” bằng cách sử dụng biểu thức if lồng nhau.

#!/bin/bash  
#Nested if statement  
  
if [ $1 -gt 50 ]  
then  
  echo "Number is greater than 50."  
  
  if (( $1 % 2 == 0 ))  
  then  
    echo "and it is an even number."  
  fi  
fi  

Nếu chúng ta nhập giá trị đối số là 100, thì kết quả sẽ như sau:

Kết luận Trong chủ đề này, chúng ta đã thảo luận về cách sử dụng nhánh điều kiện trong luồng thực thi tuần tự của các câu lệnh với câu lệnh if trong Bash.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories