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 $
Theo Tutorialspoint
Bài trước: Vòng lặp until trong Shell
Bài tiếp: Regular Expression trong Unix/Linux