Vòng lặp select trong Shell
Vòng lặp select cung cấp một cách dễ dàng để tạo một menu được đánh số từ đó người sử dụng có thể chọn lựa. Nó là hữu ích khi bạn muốn hỏi người sử dụng để chọn một hoặc nhiều mục từ một danh sách các lựa chọn.
Cú pháp trong Unix/Linux
select var in word1 word2 ... wordN do cac lenh de thuc thi cho moi word. done
Ở đây, var là tên một biến và word1 tới wordN là dãy các ký tự phân biệt nhau bởi khoảng trống. Cứ mỗi lần vòng lặp thực thi, giá trị biến var được thiết lập tới word tiếp theo trong danh sách các word, từ word1 tới wordN.
Đối với mỗi lựa chọn, một tập hợp các lệnh sẽ được thực thi bên trong vòng lặp. Vòng lặp này được giới thiệu trong ksh và đã được điều chỉnh vào trong bash. Nó là không có sẵn trong sh.
Ví dụ trong Unix/Linux
Ví dụ đơn giản dưới đây cho người sử dụng chọn một đồ uống trong danh sách các đồ uống.
#!/bin/ksh select DRINK in tea cofee water juice appe all none do case $DRINK in tea|cofee|water|all) echo "Go to canteen" ;; juice|appe) echo "Available at home" ;; none) break ;; *) echo "ERROR: Invalid selection" ;; esac done
Menu được hiển thị bởi vòng lặp select trông như sau:
$./test.sh 1) tea 2) cofee 3) water 4) juice 5) appe 6) all 7) none #? juice Available at home #? none $
Bạn có thể thay đổi dòng nhắc được hiển thị bởi vòng lặp select bởi thay đổi biến PS3 như sau:
$PS3="Please make a selection => " ; export PS3 $./test.sh 1) tea 2) cofee 3) water 4) juice 5) appe 6) all 7) none Please make a selection => juice Available at home Please make a selection => none $
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Các bài học UNIX phổ biến khác tại VietJack:
- Quản lý File
- Thư mục
- Quyền truy cập File
- Cài đặt Unix/Linux
- Các tiện ích cơ bản
- Các Pipe & Bộ lọc (Filter)