Câu lệnh case bash thường được sử dụng để đơn giản hóa các điều kiện phức tạp khi bạn có nhiều lựa chọn khác nhau. Sử dụng câu lệnh case thay vì các câu lệnh if lồng nhau sẽ giúp bạn làm cho các tập lệnh bash của mình dễ đọc hơn và dễ bảo trì hơn.

Câu lệnh case Bash có khái niệm tương tự với câu lệnh switch Javascript hoặc C. Sự khác biệt chính là không giống như câu lệnh switch C , câu lệnh Bash case không tiếp tục tìm kiếm đối sánh mẫu khi nó đã tìm thấy một và thực thi các câu lệnh được liên kết với mẫu đó.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu những điều cơ bản về câu lệnh case Bash và chỉ cho bạn cách sử dụng nó trong các tập lệnh shell của bạn.

Cú pháp câu lệnh

Câu lệnh case Bash có dạng sau:

case EXPRESSION in

  PATTERN_1)
    STATEMENTS
    ;;

  PATTERN_2)
    STATEMENTS
    ;;

  PATTERN_N)
    STATEMENTS
    ;;

  *)
    STATEMENTS
    ;;
esac
  • Mỗi câu lệnh case bắt đầu bằng từ khóa case, theo sau là biểu thức chữ hoa và từ khóa in. Câu lệnh kết thúc bằng từ khóa esac.
  • Bạn có thể sử dụng nhiều mẫu được phân tách bởi |toán tử. Các )nhà điều hành chấm dứt một danh sách mẫu.
  • Một mẫu có thể có các ký tự đặc biệt .
  • Một mẫu và các lệnh liên quan của nó được gọi là một mệnh đề.
  • Mỗi mệnh đề phải được kết thúc bằng ;;.
  • Các lệnh tương ứng với mẫu đầu tiên phù hợp với biểu thức được thực hiện.
  • Một thực tế phổ biến là sử dụng biểu tượng dấu hoa thị ký tự đại diện ( *) làm mẫu cuối cùng để xác định trường hợp mặc định. Mô hình này sẽ luôn luôn phù hợp.
  • Nếu không có mẫu nào được khớp, trạng thái trả về là 0. Ngược lại, trạng thái trả về là trạng thái thoát của các lệnh đã thực thi.

Ví dụ về case

Dưới đây là một ví dụ sử dụng câu lệnh case trong tập lệnh bash sẽ in ngôn ngữ chính thức của một quốc gia nhất định: languages.sh

#!/bin/bash

echo -n "Enter the name of a country: "
read COUNTRY

echo -n "The official language of $COUNTRY is "

case $COUNTRY in

  Lithuania)
    echo -n "Lithuanian"
    ;;

  Romania | Moldova)
    echo -n "Romanian"
    ;;

  Italy | "San Marino" | Switzerland | "Vatican City")
    echo -n "Italian"
    ;;

  *)
    echo -n "unknown"
    ;;
esac

Lưu tập lệnh tùy chỉnh dưới dạng tệp và chạy nó từ dòng lệnh.

bash languages.sh

Tập lệnh sẽ yêu cầu bạn nhập một quốc gia. Ví dụ: nếu bạn nhập “Lithuania”, nó sẽ khớp với mẫu đầu tiên và lệnh echo trong mệnh đề đó sẽ được thực thi.

Tập lệnh sẽ in đầu ra sau:

Enter the name of a country: Lithuania
The official language of Lithuania is Lithuanian

Nếu bạn nhập quốc gia không khớp với bất kỳ mẫu nào khác ngoại trừ biểu tượng dấu hoa thị ký tự đại diện mặc định, giả sử Argentina, tập lệnh sẽ thực thi lệnh echo bên trong mệnh đề mặc định.

Enter the name of a country: Argentina
The official language of Argentina is unknown

Phần kết luận

Đến đây bạn đã hiểu rõ về cách viết câu lệnh case trong bash . Chúng thường được sử dụng để truyền các tham số cho một tập lệnh shell từ dòng lệnh. Ví dụ, các tập lệnh init đang sử dụng các câu lệnh case để bắt đầu, dừng hoặc khởi động lại các dịch vụ.

Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, hãy để lại bình luận.

0 0 votes
Article Rating
Tagged:
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments