NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
13/09/2024
Lượt xem

Cách sử dụng lệnh if trong Bash Script và ví dụ thực tế dễ hiểu cho người mới

13/09/2024
12 phút đọc
Lượt xem

Đánh giá

Câu lệnh if là một cấu trúc điều kiện giúp xây dựng tính logic, hỗ trợ ra quyết định và quản lý flow của script. Ngoài ra, câu lệnh if còn giúp script phản ứng linh hoạt với các tình huống khác nhau nhờ sự hỗ trợ của nhiều toán tử điều kiện như so sánh, logic, kiểm tra file,… Hãy cùng Vietnix tìm hiểu chi tiết hơn về câu lệnh if trong Bash qua bài viết sau.

Hiểu đúng về tập lệnh if trong Bash Script

Lệnh if (If Statement) trong Bash Script là một dạng câu lệnh điều kiện giúp kiểm soát luồng xử lý của chương trình dựa trên việc kiểm tra các điều kiện. Dựa vào kết quả đúng (true) hoặc sai (false) của điều kiện, tập lệnh if sẽ quyết định thực hiện một hoặc nhiều khối mã. Đây là một phần cơ bản trong lập trình để kiểm tra, xử lý các điều kiện logic trong chương trình Bash.

tập lệnh if trong Bash Script
Tập lệnh if trong Bash Script

Giai đoạn đầu để thực hiện tốt các tập lệnh Script trong Bash Shell đầu tiên bạn cần làm quen với các hệ điều hành dựa trên Linux. Một số bản phân phối của Linux (Linux Distro) bạn có thể trải nghiệm thực hiện các câu lệnh trong Linux ban đầu như Ubuntu.

Cách hoạt động của if statement trên shell script

Chức năng chính của câu lệnh if là dùng để kiểm soát và đưa ra quyết định dựa trên các điều kiện cụ thể xem điều kiện đó là đúng hay sai. Nếu một điều kiện cụ thể được thỏa mãn, dòng lệnh if sẽ chạy tập lệnh bash trong môi trường (shell script) nhất định. Ngược lại, nếu điều kiện sai thì sẽ không có bất kỳ lệnh nào được thực thi tại Bash Shell.

Cách hoạt động của if statement trên shell script
Cách hoạt động của if statement trên shell script

Bên cạnh đó, bạn có thể áp dụng thử ngay cách chạy song song lệnh Bash với nhiều script với mỗi cú pháp lệnh khi sử dụng thành thạo. Ngoài đóng vai trò môi trường (shell), lệnh Bash vẫn được xem như command (dòng lệnh) hữu ích trong Linux giúp bạn thuận tiện trong việc thực hiện nhiều tập lệnh

Cú pháp 1: Sử dụng lệnh đơn ngoặc vuông [ ] hoặc test

Cú pháp này hỗ trợ 3 loại kiểm tra có điều kiện như điều kiện số, điều kiện dựa trên chuỗi và điều kiện dựa trên tệp.

if [ condition ]; then

#Command to execute if it satisfies the condition

Fi

Hoặc bạn có thể viết như sau:

if test condition; then

Command to execute if it satisfies the condition

fi

Lưu ý: Bạn phải đảm bảo chèn khoảng cách giữa các dấu ngoặc [ ] ở dòng đầu tiên và dấu chấm phẩy ở cuối dấu ngoặc.

Cú pháp 2: Thực thi statement với ngoặc vuông đôi [[ ]]

Dấu ngoặc vuông đôi [[ ]] hoạt động tương tự như dấu ngoặc vuông đơn [ ]. Tuy nhiên, [[ ]] cung cấp chức năng nâng cao hơn so với [ ].

if [[ condition ]]; then

#Command to execute if it satisfies the condition

fi

Cú pháp 3: Thực hiện cú pháp lệnh cùng ngoặc đơn kép (( ))

Sử dụng cú pháp dấu ngoặc đơn kép (( )) rất hữu ích cho các điều kiện dựa trên số hoặc phép tính số học.

if (( condition )); then

#Command to execute if it satisfies the condition

fi

3 cách sử dụng lệnh if trong Bash Script tùy theo ý định

  1. Thực thi lệnh if với một điều kiện
  2. Sử dụng lệnh với nhiều điều kiện
  3. Sử dụng nhiều câu lệnh if lồng nhau

Cách 1: Thực thi lệnh if với một điều kiện

Trong script Bash, câu lệnh if với một điều kiện là cấu trúc cơ bản nhất. Khi bạn sử dụng một toán tử điều kiện bên trong câu lệnh if được hiểu là bạn muốn kiểm tra một điều kiện duy nhất. Sau đây là một ví dụ về câu lệnh if trong Bash với một điều kiện duy nhất:

#!/bin/bash

number=2

#if statement with a single condition

if [ $number -lt 5 ]; then

    echo "The variable is less than 5."

fi

Lưu ý:

Trong #!/bin/bash , “#!” được gọi là ‘Shebang” hoặc “Hashbang”. Đầu tiên, script khởi tạo một biến number. Tiếp theo, nó sử dụng câu lệnh if kiểm tra xem số được chèn có nhỏ hơn 5 không, nếu điều kiện được thỏa mãn, script sẽ dùng lệnh echo để hiển thị output.

Thực thi lệnh if với một điều kiện
Thực thi lệnh if với một điều kiện

Cách 2: Sử dụng lệnh với nhiều điều kiện

Khi sử dụng câu lệnh if nhiều điều kiện, bạn không chỉ thực hiện được một số lệnh code block khi nhiều điều kiện được thỏa mãn, mà còn có thể thực hiện bất kỳ lệnh nào nếu một trong các điều kiện đó được thỏa mãn. Để sử dụng nhiều điều kiện trong một câu lệnh if duy nhất, bạn có thể thêm các toán tử logic (&& hoặc ||) vào giữa mỗi điều kiện như sau:

#!/bin/bash

echo "Enter username"

read username

echo "Enter password"

read password

if [[ "$username" == "X" && "$password" == "123" ]]; then

echo "Successfully logged in."

fi

Chú thích:

Ở đây, script nhắc người dùng nhập username và password, sau đó kiểm tra xem 2 điều kiện có đúng không bằng cách sử dụng câu lệnh if. Cuối cùng, nó sẽ phản hồi output nếu cả hai điều kiện đều được đáp ứng.

Cách 3: Sử dụng nhiều câu lệnh if lồng nhau

Đôi khi, bạn có thể cần nhiều câu lệnh if trong script của mình. Trong trường hợp đó, bạn có thể sử dụng một câu lệnh if bên trong một câu lệnh if khác, đây được gọi là câu lệnh if lồng nhau. Dưới đây là một ví dụ đơn giản cho bạn:

#!/bin/bash

number=60

#Nested if statements

if [ $number -gt 50 ]

then

echo "The number is greater than 50."

if (( $number % 2 == 0 ))

then

echo "It's an even number."

fi

fi

Chú thích:

Đầu tiên, script khởi tạo một biến number và kiểm tra xem giá trị của biến có lớn hơn 50 không. Nếu điều kiện là đúng, thì nó sẽ nhập câu lệnh if lồng nhau bên trong block if đầu tiên và kiểm tra number có phải là số chẵn không. Cuối cùng, script hiển thị output cho mỗi điều kiện đúng bằng cách sử dụng lệnh echo.

Ví dụ 1: Kiểm tra sự tồn tại của file bằng câu lệnh if

Để kiểm tra xem một file có tồn tại và là file thông thường hay không, hãy sử dụng tùy chọn -f trong biểu thức kiểm tra của câu lệnh if. Bạn hãy thực hiện theo script bên dưới để kiểm tra sự tồn tại của file:

#!/bin/bash

file_name="file1.txt"

#Checking if the file exists and is a regular file

if [ -f "$file_name" ]; then

echo "$file_name exists and is a regular file."

fi

Chú thích:

Cú pháp if [ -f “$file_name” ] kiểm tra xem file1.txt có tồn tại trong hệ thống và có phải là tệp thông thường hay không. Nếu điều kiện được thỏa mãn, lệnh này sẽ thực hiện đúng theo biểu thức yêu cầu và hiển thị thông báo kết quả. Ngược lại, nó sẽ không trả về giá trị nào.

Kiểm tra sự tồn tại của file bằng câu lệnh if
Kiểm tra sự tồn tại của file bằng câu lệnh if

Ví dụ 2: Sử dụng lệnh if để kiểm tra phép toán chẵn (chia hết)

Số chẵn được định nghĩa là một số nguyên chia hết cho 2 nghĩa là không có phần dư. Toán tử modulo (%) trả về phần dư của phép chia và giúp xác định xem một số có phải là số chẵn hay không. Sau đây là cách bạn có thể xác định xem một số có phải là số chẵn trong Bash nhờ câu lệnh if:

#!/bin/bash

#Checking if a number is even

is_even_number() {

if [ $(( $1 % 2 )) -eq 0 ]; then

echo "$1 is even."

fi

}

is_even_number 8

is_even_number 11

Chú thích:

Cú pháp if [ $(( $1 % 2 )) -eq 0 ] bên trong hàm kiểm tra xem phần dư chia cho 2 có bằng 0 hay không, trong đó $1 biểu thị cho giá trị đầu tiên trong danh sách các giá trị mà bạn truyền vào hàm. Nếu phần dư bằng 0, số đó là số chẵn và script in ra output. Ngược lại, nó chỉ ra số đó là số lẻ và script không in ra gì cả.

Sử dụng lệnh if để kiểm tra phép toán chẵn (chia hết)
Sử dụng lệnh if để kiểm tra phép toán chẵn (chia hết)

Ví dụ 3: Xử lý so sánh các số thực bằng câu lệnh if

    Trong trường hợp bạn có các số thực khác nhau cần được xử lý trong các script Bash, bạn nên sử dụng câu lệnh if kết hợp với lệnh bên ngoài bc (Basic Calculator). Dưới đây là một ví dụ về script so sánh các số thực:

    #!/bin/bash
    
    #Comparing floating-point numbers in Bash
    
    variable1=5.95
    
    variable2=5.951
    
    #Defining a value of tolerance
    
    tolerance=0.01
    
    #Calculating the difference between the two floating-point numbers
    
    difference=$(bc -l <<< "$variable1 - $variable2")
    
    #Checking if the difference is less than the tolerance value
    
    if (( $(bc -l <<< "$difference <= $tolerance") )); then
    
        echo "The numbers are almost equal."
    
    fi

    Chú thích:

    Đầu tiên, script bắt đầu với hai biến có hai giá trị khác nhau. Sau đó, nó định nghĩa một biến tolerance với giá trị là 0.01, để xác định ngưỡng chênh lệch có thể chấp nhận giữa 2 số. Tiếp theo, script sử dụng lệnh bc để tính toán sự khác biệt giữa hai biến. Sau đó, nó kiểm tra xem sự khác biệt đó có nhỏ hơn hoặc bằng giá trị tolerance hay không, bằng cách sử dụng câu lệnh if và hiển thị kết quả khi điều kiện đúng bằng lệnh echo.

    Xử lý so sánh các số thực bằng câu lệnh if
    Xử lý so sánh các số thực bằng câu lệnh if

    Câu hỏi thường gặp

    Có thể sử dụng lệnh if để tạo một menu tương tác trong Bash Script không?

    Có thể. Sử dụng các vòng lặp và các lệnh nhập liệu từ người dùng (tạo menu) sẽ giúp bạn xây dựng những menu đa dạng và linh hoạt.

    Có thể sử dụng lệnh if để kiểm tra kết quả của một lệnh khác trong Bash Script không?

    Có thể. Người dùng có thể kiểm tra kết quả bằng mã trả về từ cách thực hiện

    Lời kết

    Tóm lại, câu lệnh if là một thành phần không thể thiếu trong Bash, giúp tối ưu hóa và đánh giá script của bạn để đưa ra quyết định tối ưu dựa trên các điều kiện khác nhau. Hy vọng bài viết có thể giúp bạn hiểu rõ hơn cũng như ứng dụng được lệnh if . Cảm ơn bạn đã theo dõi bài viết!

    THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

    Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

    Chọn chủ đề :

    Hưng Nguyễn

    Co-Founder
    tại

    Kết nối với mình qua

    Kết nối với mình qua

    Theo dõi
    Thông báo của
    guest
    0 Comments
    Phản hồi nội tuyến
    Xem tất cả bình luận

    Tăng tốc độ website - Nâng tầm giá trị thương hiệu

    Tăng tốc tải trang

    95 điểm

    Nâng cao trải nghiệm người dùng

    Tăng 8% tỷ lệ chuyển đổi

    Thúc đẩy SEO, Google Ads hiệu quả

    Tăng tốc ngay

    SẢN PHẨM NỔI BẬT

    7 NGÀY DÙNG THỬ HOSTING

    NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

    Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

    ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
    Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
    ĐÓNG

    ĐĂNG KÝ DÙNG THỬ HOSTING

    7 NGÀY MIỄN PHÍ

    ĐĂNG KÝ DÙNG THỬ HOSTING

    7 NGÀY MIỄN PHÍ

    XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
    Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
    ĐÓNG