Cách sử dụng câu lệnh Bash case

How Use Bash Case Statement



Câu lệnh bash case tương tự như câu lệnh if-else nhưng dễ hơn và đơn giản hơn. Nó giúp so khớp một biến với một số giá trị. Nó được sử dụng khi bạn yêu cầu các câu lệnh IF-else với một số câu lệnh Elif… Nó khá giống với câu lệnh switch trong C tuy nhiên câu lệnh bash case không chuyển tiếp sau khi mẫu được khớp

Trong bài viết này, chúng tôi sẽ giải thích cách sử dụng câu lệnh Bash case với ví dụ trong hệ điều hành Linux.







Cú pháp của câu lệnh trường hợp bash

Đây là cú pháp cho câu lệnh bash case:



Cú pháp:



trường hợp $ biến trong
mẫu-1)
lệnh
;;
mẫu-2)
lệnh
;;
mẫu-3)
lệnh
;;
mẫu-N)
lệnh
;;
*)
lệnh
;;
esac
  • Câu lệnh case bắt đầu bằng case và kết thúc bằng esac
  • Dấu) được sử dụng để kết thúc một mẫu. Để tách nhiều mẫu, | toán tử được sử dụng như hình dưới đây:
trường hợp $ biến trong
mẫu-1|mẫu-2)
lệnh
....
....
;;
mẫu-3|mẫu-4)
lệnh
....
....
;;
  • Mẫu với các lệnh được gọi là mệnh đề và mọi mệnh đề đều kết thúc bằng (;;).
  • Biểu tượng dấu hoa thị * có thể được sử dụng để xác định trường hợp mặc định.
  • Trước tiên, câu lệnh Bash case khớp với biến $ đầu vào với các mẫu khác nhau. Nếu một mẫu được khớp, thì bộ lệnh tương ứng có tới dấu chấm phẩy kép (;;) sẽ được thực hiện.

Ví dụ 1:

Ví dụ sau đây là về bảng sao kê tiền mặt, trong đó nó yêu cầu người dùng nhập tên tháng. Nếu đầu vào này khớp với các mẫu được xác định trong tập lệnh, lệnh echo tương ứng sẽ được thực hiện. Lệnh echo sẽ hiển thị thông tin về sự kiện quốc tế của tháng cụ thể đó.





Để sử dụng tập lệnh này, hãy tạo một tệp văn bản đơn giản; đặt tên nó bằng phần mở rộng tệp .sh. Thêm tập lệnh sau vào đó và lưu nó. Sau đó, gán tệp này để thực thi quyền bằng cách chạy lệnh sau trong Terminal:

$sudo chmod 777filename.sh

Để thực thi tệp bash này, chỉ cần chạy ./ theo sau là tên tệp bash như sau:



$./filename.sh

Khi bạn thực thi tập lệnh, bạn sẽ được yêu cầu nhập tên của tháng làm đầu vào. Nếu tên tháng được khớp, nó sẽ hiển thị sự kiện tương ứng trong tháng cụ thể đó, nếu không, Không tìm thấy thông tin phù hợp sẽ được hiển thị.

Lưu ý rằng shopt -s nocasematch được sử dụng để đối sánh mẫu bất kể trường hợp của nó.

cửa hàng -NSnocasematch

quăng đi 'Nhập tên của tháng'
đọctháng
trường hợp $ tháng trong
Tháng một)
quăng đi 'Ngày quốc tế giáo dục 24 tháng 1'.
;;
Tháng hai)
quăng đi 'Ngày 20 tháng Hai, Ngày Thế giới Công bằng Xã hội.'
;;
tháng Ba)
quăng đi 'Ngày quốc tế phụ nữ 8 tháng 3'.
;;
tháng tư)
quăng đi 'Ngày sức khỏe thế giới ngày 7 tháng 4'
;;
Có thể)
quăng đi 'Ngày quốc tế gia đình 15 tháng 5'
;;
tháng Sáu)
quăng đi 'Ngày tị nạn thế giới 20 tháng 6'
;;
tháng Bảy)
quăng đi 'Ngày dân số thế giới 11 tháng 7'
;;
*)
quăng đi 'Không tìm thấy thông tin phù hợp'
;;
esac

Ví dụ 2:

Ví dụ sau đây là về báo cáo tiền mặt bash trong đó người dùng được yêu cầu nhập tên quốc gia. Nếu đầu vào này khớp với các mẫu được xác định trong tập lệnh, lệnh echo tương ứng sẽ được thực hiện. Lệnh echo sẽ hiển thị thông tin về thủ đô của quốc gia cụ thể đó.

Để sử dụng tập lệnh này, hãy làm theo cùng một phương pháp được mô tả trong ví dụ trên. Sau khi hoàn tất, hãy thực thi tập lệnh và bạn sẽ được yêu cầu nhập tên quốc gia làm đầu vào. Nếu tên quốc gia được khớp với tên quốc gia được xác định trước, nó sẽ hiển thị tên thủ đô của quốc gia đó, ngược lại, thông báo Thông tin không có sẵn sẽ được hiển thị.

#! / bin / bash
cửa hàng -NSnocasematch
quăng đi -n 'Nhập tên của một quốc gia:'
đọcQuốc gia

quăng đi -n 'Thủ đô của$ quốc giaLà '
trường hợp $ quốc gia trong
Pakistan)
quăng đi -n 'Islamabad'
;;
Fiji)
quăng đi -n 'Khô'
;;
Vương quốc Anh| 'Vương quốc Anh')
quăng đi -n 'London'
;;
gà tây)
quăng đi -n 'Ankara'
;;
CÔNG DỤNG)
quăng đi -n 'Washington DC'
;;
*)
quăng đi -n 'Thông tin không có sẵn'
;;
esac
quăng đi ''

Các câu lệnh bash case làm cho bash-script dễ đọc và dễ hiểu hơn. Trong bài viết này, chúng tôi đã giới thiệu cho các bạn cách viết và sử dụng các câu lệnh bash case. Bây giờ bạn có thể viết loại câu lệnh if-else đa cấp một cách dễ dàng và đơn giản bằng cách sử dụng các câu lệnh trường hợp.