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óacase
, theo sau là biểu thức chữ hoa và từ khóain
. Câu lệnh kết thúc bằng từ khóaesac
. - 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.