درسنامه ۳-۸: ساخت منوی ساده با case و حلقه
در این درس با دستور case در Bash آشنا میشویم و از آن برای ساخت یک منوی متنی ساده استفاده میکنیم. منوها باعث میشوند اسکریپت شما برای کاربرانی که فقط گزینه انتخاب میکنند، راحتتر قابل استفاده باشد.
دستور case برای چند حالت مختلف
ساختار کلی:
مثال ساده:
#!/bin/bash
read -p "Enter a letter (a/b): " LETTER
case "$LETTER" in
a)
echo "You chose option A."
;;
b)
echo "You chose option B."
;;
*)
echo "Unknown option."
;;
esac
ساخت منوی متنی ساده
حالا case را با یک حلقهٔ while ترکیب میکنیم تا منویی بسازیم که چند بار نمایش داده میشود تا وقتی کاربر انتخاب کند خارج شود.
#!/bin/bash
while true
do
echo "==== Simple Menu ===="
echo "1) Show current date"
echo "2) Show current directory"
echo "3) List files"
echo "4) Exit"
read -p "Choose an option [1-4]: " CHOICE
case "$CHOICE" in
1)
date
;;
2)
pwd
;;
3)
ls
;;
4)
echo "Exiting... Bye!"
break
;;
*)
echo "Invalid option, please try again."
;;
esac
echo "" # یک خط خالی برای خوانایی
done
در این مثال:
- منو داخل یک حلقهٔ while true نمایش داده میشود.
- با case بر اساس گزینهٔ انتخابی، دستور مناسب اجرا میشود.
- هنگام انتخاب گزینهٔ ۴، پیام خداحافظی چاپ شده و با break از حلقه خارج میشویم.
نکات کاربردی
- میتوانید برای هر گزینه، یک تابع جداگانه بنویسید (در درس بعد توابع را میبینیم).
- برای جلوگیری از شلوغ شدن خروجی، میتوانید بعد از اجرای هر گزینه با
read -p "Press Enter to continue..."مکث کوتاه ایجاد کنید.
تمرین کوتاه
- منویی بسازید که گزینههایی مثل «نمایش زمان»، «نمایش فضای آزاد دیسک (با دستور
df -h)» و «نمایش ۵ خط آخر یک فایل لاگ» داشته باشد. - گزینهای اضافه کنید که نام کاربر را بگیرد و پیام
"Hello NAME!"نمایش دهد.
در درس بعد، با توابع در Bash آشنا میشویم تا بتوانیم همین منو را تمیزتر و خواناتر بنویسیم.