Xì-trét quá nên lông bông thư giãn một chút. Và đây là một phát hiện:
Nam giới, nhất là nam thanh niên, không nên uống sữa tươi đóng hộp. Lý do là tất cả sữa tươi đóng hộp đều là sữa tiệt trùng! :D
Saturday, December 16, 2006
Friday, December 15, 2006
Tạo menu tương tác với shell script
Tôi thường dùng shell script để làm vài việc lặt vặt với ... số lượng lớn, ví dụ: migrate account, convert addressbook, backup data. Dữ liệu thường được đọc từ file, họa hoằn lắm mới thêm vài option. Đơn giản là để giải quyết bài toán một hoặc hai lần nên làm sao cho nhanh nhất là được. Nếu script được dùng thường xuyên với input khác nhau buộc phải nghĩ đến cách chuyển sang dạng menu tương tác để hạn chế option cho ... chính shell script.
Cách đơn giản nhất để tạo menu tương tác là dùng vòng lặp vô tận: in menu, lấy lựa chọn, xử lý. Viết một vòng lặp như thế với bash không khó nhưng rườm rà, nghĩ tới là đã nản. May mắn thay bash có lệnh buillt-in select giúp việc tạo menu dễ như trở bàn tay. Dưới đây là một ví dụ Thực đơn quán bà Tám:
Cách đơn giản nhất để tạo menu tương tác là dùng vòng lặp vô tận: in menu, lấy lựa chọn, xử lý. Viết một vòng lặp như thế với bash không khó nhưng rườm rà, nghĩ tới là đã nản. May mắn thay bash có lệnh buillt-in select giúp việc tạo menu dễ như trở bàn tay. Dưới đây là một ví dụ Thực đơn quán bà Tám:
#!/bin/bashKết quả:
# menu.sh
PS3="Mời bạn chọn thực đơn: "
select thucdon in "Sáng" "Trưa" "Tối" "Thoát"; do
case "$thucdon" in
"Sáng")
echo "Bún bò + cafê đá"
;;
"Trưa")
echo "Cơm tấm sườn"
;;
"Tối")
echo "Bún chả cá"
;;
"Thoát")
break
;;
esac
done
$ sh menu.shChỉ có mấy lưu ý:
1) Sáng
2) Trưa
3) Tối
4) Thoát
Mời bạn chọn thực đơn: 1
Bún bò + cafê đá
Mời bạn chọn thực đơn:
- PS3: dùng để hiển thị dấu nhắc lựa chọn, nếu dùng select lồng nhau thì nhớ lưu và khôi phục giá trị này
- Kết thúc vòng lặp select bằng break
Subscribe to:
Posts (Atom)