أنماط
الأنماط المستخدمة من قبل حقيبة هي نفسها المستخدمة في توسيع اسم المسار. تُنهى الأنماط بعلامة ")". إليك بعض الأنماط الصحيحة:
الجدول 31- 1: أمثلة على أنماط الحالة
وصف النمط
وصف النمط
a) مباريات إذا كلمة يساوي "أ".
[[:ألفا:]]) مباريات إذا كلمة هو حرف أبجدي واحد.
؟؟؟) مباريات إذا كلمة يبلغ طوله ثلاثة أحرف بالضبط.
*.رسالة قصيرة) مباريات إذا كلمة ينتهي بالحرف “.txt”.
*) يطابق أي قيمة من كلمةمن الجيد تضمين هذا باعتباره النمط الأخير في حقيبة الأمر، لالتقاط أي قيم من كلمة التي لم تتطابق مع النمط السابق؛ أي، لالتقاط أي قيم غير صالحة محتملة.
فيما يلي مثال للأنماط في العمل:
#! / بن / باش
قراءة -p "أدخل الكلمة > " حالة $REPLY في
[[:alpha:]]) echo "هو حرف أبجدي واحد." ;; [ABC][0-9]) echo "هو A أو B أو C متبوعًا برقم." ;;
???) echo "يبلغ طوله ثلاثة أحرف." ;;
*.txt) echo "هي كلمة تنتهي بـ '.txt'" ;;
*) صدى "شيء آخر." ;; esac
#! / بن / باش
قراءة -p "أدخل الكلمة > " حالة $REPLY في
[[:alpha:]]) echo "هو حرف أبجدي واحد." ;; [ABC][0-9]) echo "هو A أو B أو C متبوعًا برقم." ;;
???) echo "يبلغ طوله ثلاثة أحرف." ;;
*.txt) echo "هي كلمة تنتهي بـ '.txt'" ;;
*) صدى "شيء آخر." ;; esac
من الممكن أيضًا دمج أنماط متعددة باستخدام حرف الشريط العمودي كفاصل. يؤدي هذا إلى إنشاء نمط شرطي "أو". هذا مفيد في التعامل مع الأحرف الكبيرة والصغيرة. على سبيل المثال:
#! / بن / باش
# case-menu: برنامج معلومات نظام يحركه قائمة واضح
صدى صوت "
الرجاء التحديد:
A. عرض معلومات النظام
B. عرض مساحة القرص
C. استغلال مساحة العرض المنزلية
Q. يترك "
اقرأ -p "أدخل الاختيار [أ، ب، ج أو س] > "
حالة $ REPLY في
س|س) صدى "تم إنهاء البرنامج". خروج
;;
أ|أ) صدى وقت تشغيل "Hostname: $ HOSTNAME"
;;
ب|ب) مدافع -h
;;
ج|ج) إذا [[$ (id -u) -eq 0]]؛ من ثم
صدى "Home Space Utilization (All Users)" du -sh / home / *
آخر
صدى "Home Space Utilization ($ USER)" du -sh $ HOME
fi
#! / بن / باش
# case-menu: برنامج معلومات نظام يحركه قائمة واضح
صدى صوت "
الرجاء التحديد:
A. عرض معلومات النظام
B. عرض مساحة القرص
C. استغلال مساحة العرض المنزلية
Q. يترك "
اقرأ -p "أدخل الاختيار [أ، ب، ج أو س] > "
حالة $ REPLY في
س|س) صدى "تم إنهاء البرنامج". خروج
;;
أ|أ) صدى وقت تشغيل "Hostname: $ HOSTNAME"
;;
ب|ب) مدافع -h
;;
ج|ج) إذا [[$ (id -u) -eq 0]]؛ من ثم
صدى "Home Space Utilization (All Users)" du -sh / home / *
آخر
صدى "Home Space Utilization ($ USER)" du -sh $ HOME
fi
;;
*) صدى "إدخال غير صالح"> & 2 خروج 1
;;
ESAC
;;
*) صدى "إدخال غير صالح"> & 2 خروج 1
;;
ESAC
هنا نقوم بتعديل قائمة الحالات برنامج يستخدم الأحرف بدلاً من الأرقام لاختيار القائمة. لاحظ كيف تسمح الأنماط الجديدة بإدخال الأحرف الكبيرة والصغيرة.