×

Từ khóa điều kiện trong Bash if else elif và case

Trong lập trình Shell, đặc biệt là với Bash, việc sử dụng các cấu trúc điều kiện là rất quan trọng để kiểm tra điều kiện trước khi thực hiện một hành động nào đó. Hai biểu thức điều kiện chính thường gặp là if-else-elifcase. Bài viết này sẽ giúp bạn hiểu rõ hơn về cách sử dụng các cấu trúc này trong Bash, cùng với ví dụ minh họa để bạn có thể áp dụng vào thực tế.

Khái niệm cơ bản về cấu trúc điều kiện trong Bash

Trước khi đi vào các cấu trúc điều kiện cụ thể, hãy cùng điểm qua một số khái niệm cơ bản về câu lệnh điều kiện trong Bash. Câu lệnh điều kiện cho phép bạn kiểm tra các điều kiện khác nhau và thực hiện các hành động tương ứng dựa trên kết quả của các điều kiện đó.

1. Cấu trúc if-else-elif

Cấu trúc if-else-elif là một trong những cách phổ biến nhất để kiểm tra điều kiện trong Bash. Cách thức hoạt động của nó tương đối đơn giản; nếu điều kiện đầu tiên là đúng (true), thì khối lệnh đầu tiên sẽ được thực hiện. Nếu điều kiện đầu tiên sai (false), Bash sẽ kiểm tra tiếp các điều kiện khác, nếu có.

Dưới đây là cú pháp cơ bản cho cấu trúc này:

if [ điều kiện ]; then
    # Khối lệnh thực thi nếu điều kiện đúng
elif [ điều kiện khác ]; then
    # Khối lệnh thực thi nếu điều kiện khác đúng
else
    # Khối lệnh thực thi nếu tất cả các điều kiện đều sai
fi

2. Cấu trúc case

Cấu trúc case thường được sử dụng khi bạn có nhiều điều kiện khác nhau để kiểm tra một giá trị cụ thể. Cấu trúc này giúp mã nguồn của bạn trở nên sạch sẽ và dễ đọc hơn khi bạn cần so sánh một giá trị với nhiều lựa chọn.

Dưới đây là cú pháp cơ bản cho cấu trúc case:

case biến trong
    mẫu1)
        # Khối lệnh thực thi cho mẫu1
        ;;
    mẫu2)
        # Khối lệnh thực thi cho mẫu2
        ;;
    *)
        # Khối lệnh thực thi nếu không khớp với bất kỳ mẫu nào
        ;;
esac

Áp dụng cấu trúc if-else-elif trong Bash

Hãy đi vào ví dụ cụ thể để hiểu rõ hơn về cách hoạt động của cấu trúc if-else-elif.

Ví dụ 1: Kiểm tra số âm, số dương, hoặc số 0

#!/bin/bash

echo "Nhập một số: "
read số

if [ $số -gt 0 ]; then
    echo "Đây là một số dương."
elif [ $số -lt 0 ]; then
    echo "Đây là một số âm."
else
    echo "Đây là số 0."
fi

Trong ví dụ này, chúng ta kiểm tra đầu vào của người dùng để xác định số đó là âm, dương hay bằng 0. Sử dụng toán tử -gt để kiểm tra lớn hơn, -lt kiểm tra nhỏ hơn, và không cần thiết phải sử dụng toán tử cho trường hợp bằng 0.

Sử dụng nhiều điều kiện trong if-else

Bạn có thể sử dụng nhiều điều kiện trong một câu lệnh if bằng cách kết hợp với toán tử logic:

#!/bin/bash

echo "Nhập một số: "
read số

if [ $số -gt 0 ] && [ $số -lt 100 ]; then
    echo "Số bạn nhập nằm trong khoảng từ 1 đến 99."
else
    echo "Số bạn nhập không nằm trong khoảng từ 1 đến 99."
fi

Ví dụ 2: Kiểm tra độ tuổi

#!/bin/bash

echo "Nhập độ tuổi của bạn: "
read tuổi

if [ $tuổi -lt 13 ]; then
    echo "Bạn là trẻ em."
elif [ $tuổi -lt 20 ]; then
    echo "Bạn là thanh thiếu niên."
else
    echo "Bạn là người lớn."
fi

Trong ví dụ này, chúng ta xác định độ tuổi của người dùng và phân loại họ thành trẻ em, thanh thiếu niên hoặc người lớn dựa trên độ tuổi nhập vào.

Cấu trúc case trong Bash

Cấu trúc case cực kỳ hữu ích khi bạn cần kiểm tra một biến với nhiều giá trị khác nhau. Hãy xem một ví dụ để hiểu rõ cách sử dụng nó.

Ví dụ 3: Xử lý menu

#!/bin/bash

echo "Chọn một lựa chọn từ menu:"
echo "1. Thêm"
echo "2. Xóa"
echo "3. Hiển thị"
echo "4. Thoát"
read lựa_chọn

case $lựa_chọn in
    1)
        echo "Bạn đã chọn thêm."
        ;;
    2)
        echo "Bạn đã chọn xóa."
        ;;
    3)
        echo "Bạn đã chọn hiển thị."
        ;;
    4)
        echo "Bạn đã chọn thoát."
        ;;
    *)
        echo "Lựa chọn không hợp lệ."
        ;;
esac

Trong ví dụ này, người dùng được yêu cầu chọn một mục từ menu. Cấu trúc case giúp chúng ta kiểm tra lựa chọn của người dùng và phản hồi lại một cách chính xác.

Kết hợp if-else và case

Bạn có thể kết hợp cả hai cấu trúc if-elsecase trong một kịch bản Bash để xử lý logic phức tạp hơn.

Ví dụ 4: Kết hợp if và case

#!/bin/bash

echo "Nhập một số từ 1 đến 10:"
read số

if [[ $số -ge 1 && $số -le 10 ]]; then
    case $số in
        1) echo "Bạn đã nhập số một." ;;
        2) echo "Bạn đã nhập số hai." ;;
        3) echo "Bạn đã nhập số ba." ;;
        4) echo "Bạn đã nhập số bốn." ;;
        5) echo "Bạn đã nhập số năm." ;;
        6) echo "Bạn đã nhập số sáu." ;;
        7) echo "Bạn đã nhập số bảy." ;;
        8) echo "Bạn đã nhập số tám." ;;
        9) echo "Bạn đã nhập số chín." ;;
        10) echo "Bạn đã nhập số mười." ;;
    esac
else
    echo "Số nhập vào không hợp lệ, vui lòng nhập từ 1 đến 10."
fi

Kết luận

Việc làm quen với các cấu trúc điều kiện trong Bash dễ dàng hơn nhiều nếu bạn thực hành thường xuyên. Cấu trúc if-else-elifcase là công cụ mạnh mẽ giúp bạn xử lý nhiều kịch bản khác nhau trong lập trình Shell. Hãy chắc chắn rằng bạn hiểu rõ cách hoạt động của chúng để xây dựng các ứng dụng mạnh mẽ và linh hoạt hơn.

Việc áp dụng các câu lệnh điều kiện vào kịch bản của bạn sẽ giúp bạn xử lý logic một cách hiệu quả, từ việc kiểm tra giá trị số đến xử lý đầu vào từ người dùng. Hy vọng rằng bài viết đã cung cấp cho bạn một cái nhìn sâu sắc và hữu ích về cách sử dụng cấu trúc điều kiện trong Bash.

Comments