1
4
select dir in $PATH
do
if [ $dir ]; then
cnt=$(ls –Al $dir | wc -l)
echo “$cnt files in $dir”
else
echo “Dohhh! No such choice!”
fi
echo –e “\nPress ENTER to continue, CTRL –C to quit”
read
clear
done
Chương trình tạo các menu bằng select
Lệnh đầu tiên đặt kí tự IFS là : (ký tự phân cách), vì thế select có thể phân tích hoàn
chỉnh biến môi trường $PATH. Sau đó nó thay đổi lời nhắc default khi select bằng biến
PS3. Sau khi xoá sạch màn hình, nó bước vào một vòng lặp, đưa ra một danh sách các thư
mục nằm trong $PATH và nhắc người dùng chọn lựa như là minh hoạ trong hình dưới.
Nếu người dùng chọn hợp lệ, lệnh ls được thực hiện kết quả được gửi cho lệnh đếm từ
wc để đếm số file trong thư mục và hiển thị kết quả có bao nhiêu file trong thư mục đó. Do
ls có thể sử dụng mà không cần đối số, script đầu tiên cần chắc chắn là $dir khác null (nếu
nó là null, ls sẽ hoạt động trên thư mục hiện hành nếu người dùng chọn 1 menu không hợp
lệ). Nếu người dùng chọn không hợp lệ, một thông báo lỗi sẽ được hiển thị. Câu lệnh read
(được giới thiệu sau) cho phép người dùng đánh vào lựa chọn của mình và nhấn Enter để
lặp lại vòng lặp hay nhấn Ctrl + C để thoát.
Chú ý:
Như đã giới thiệu, các vòng lặp script không kết thuc nếu ta không nhấn Ctrl+C.
Tuy nhiên ta có thể sử dụng lệnh break để thoát ra.