tailieunhanh - LẬP TRÌNH TRONG MÔI TRƯỜNG SHELL (phần 2)

Đầu tiên, bởi vì như thế bất kỳ chuỗi nào cũng đều thỏa mãn case. Hãy đặt những mẫu dễ xảy ra nhất trên đầu, tiếp theo là các mẫu có tần số xuất hiện thấp. Sau cùng mới đặt mẫu * để xử lý mọi trường hợp còn lại. Nếu muốn có thể dùng mẫu * đặt xen giữa các mẫu khác để theo dõi (debug) lỗi của chương trình (như in ra nội dung của biếntrong lệnh case chẳng hạn). Lệnh case trong ví dụ trên rõ ràng là sáng sủa hơn chương trình sử dụng if. . | LINUX Lập trình shell giờ đặt đầu tiên bởi vì như thế bất kỳ chuỗi nào cũng đều thỏa mãn case. Hãy đặt những mẫu dễ xảy ra nhất trên đầu tiếp theo là các mẫu có tần số xuất hiện thấp. Sau cùng mới đặt mẫu để xử lý mọi trường hợp còn lại. Nếu muốn có thể dùng mẫu đặt xen giữa các mẫu khác để theo dõi debug lỗi của chương trình như in ra nội dung của biếntrong lệnh case chẳng hạn . Lệnh case trong ví dụ trên rõ ràng là sáng sủa hơn chương trình sử dụng if. Tuy nhiên có thể kết hợp chung các mẫu so khớp với nhau khiến cho case ngắn gọn hơn như sau Ví du 3-12 bin sh echo Is it morning Please answer yes or no read timeofday case timeofday in yes y Yes YES echo Good Morning n N echo Good Afternoon echo Sorry answer not recognised esac exit 0 Ở script trên sử dụng nhiều mẫu so khớp trên một dòng so sánh của lệnh case. Các mẫu này có ý nghĩa tương tự nhau và yêu cầu thực thi cùng một lệnh nếu điều kiện đúng xảy ra. Cách viết này thực tế thường dùng và dễ đọc hơn cách viết thứ nhất. Mặc dù vậy hãy thử tìm hiểu case ở một ví dụ sau cùng này. case sử dụng lệnh exit để trả về mã lỗi cho từng trường hợp so sánh mẫu đồng thời case sử dụng cách so sánh tắt bằng ký tự đại diện. Ví du 3-13 bin sh echo Is it morning Please answer yes or no read timeofday case timeofday in yes y Yes YES echo Good Morning echo Up bright and early this morning nN echo Good Afternoon echo Sorry answer not recognised echo Please answer yes or no exit 1 27 Huỳnh Thúc Cước Viện CNTT tập hợp và biên soạn LINUX Lập trình shell esac exit 0 Cánh thực hiện Trong trường hợp no ta dùng ký tự đại diện thay thế cho tất cả ký tự sau n và N. Điếu này có nghĩa là nx hay Nu . đều có nghĩa là no . Ở ví dụ trên ta đã thấy cách đặt nhiều lệnh trong cùng một trường hợp so khớp. exit 1 cho biết người đùng không chọn yes và no. exit 0 cho biết người dùng đã chọn yes no theo yêu cầu. Có thể không cần đặt ở mẫu so khớp cuối cùng trong lệnh case phía trước esac vì không còn mẩu so khớp nào cần thực hiện nữa. .

TỪ KHÓA LIÊN QUAN