99fb7f0e82
- Created a new sitemap.xml file for better SEO. - Added a compressed version of the sitemap as sitemap.xml.gz. - Introduced extra.css for custom styles, including Persian font support (IRANSansX). - Defined font-face rules for regular and bold styles of IRANSansX. - Implemented various text styles and layout adjustments for better readability. - Enhanced Mermaid diagram styles to support Persian text rendering.
2.9 KiB
2.9 KiB
درسنامه ۳-۸: ساخت منوی ساده با case و حلقه
در این درس با دستور case در Bash آشنا میشویم و از آن برای ساخت یک منوی متنی ساده استفاده میکنیم. منوها باعث میشوند اسکریپت شما برای کاربرانی که فقط گزینه انتخاب میکنند، راحتتر قابل استفاده باشد.
دستور case برای چند حالت مختلف
ساختار کلی:
case مقدار in
الگو۱)
دستورات
;;
الگو۲)
دستورات
;;
*)
دستورات پیشفرض
;;
esac
مثال ساده:
#!/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 آشنا میشویم تا بتوانیم همین منو را تمیزتر و خواناتر بنویسیم.