דפוסי
הדפוסים בהם משתמשים מקרה זהים לאלה שבהם משתמשים בהרחבת שם נתיב. תבניות מסתיימות עם תו ")". הנה כמה דפוסים תקפים:
טבלה 31- 1: דוגמאות לדפוסי מקרה
תיאור תבנית
תיאור תבנית
a) מתאים אם מילה שווה "א".
[[:alpha:]]) מתאים אם מילה הוא תו אלפביתי יחיד.
???) מתאים אם מילה הוא באורך של שלוש תווים בדיוק.
*.טקסט) מתאים אם מילה מסתיים בתווים ".txt".
*) מתאים לכל ערך של מילה. מומלץ לכלול את זה בתור הדפוס האחרון ב-a מקרה פקודה, כדי לתפוס את כל הערכים של מילה שלא תאם דפוס קודם; כלומר, לתפוס ערכים לא חוקיים אפשריים.
הנה דוגמה לדפוסים בעבודה:
#! / bin / bash
קרא -p "הזן מילה > " מקרה $REPLY ב
[[:alpha:]]) הד "הוא תו אלפביתי יחיד." ;; [ABC][0-9]) הד "הוא A, B, או C ואחריו ספרה." ;;
???) הד "אורכו שלוש תווים." ;;
*.txt) echo "היא מילה המסתיימת ב'.txt'" ;;
*) הד "הוא משהו אחר." ;; esac
#! / bin / bash
קרא -p "הזן מילה > " מקרה $REPLY ב
[[:alpha:]]) הד "הוא תו אלפביתי יחיד." ;; [ABC][0-9]) הד "הוא A, B, או C ואחריו ספרה." ;;
???) הד "אורכו שלוש תווים." ;;
*.txt) echo "היא מילה המסתיימת ב'.txt'" ;;
*) הד "הוא משהו אחר." ;; esac
ניתן גם לשלב מספר תבניות באמצעות תו הפס האנכי כמפריד. זה יוצר דפוס "או" מותנה. זה שימושי עבור דברים כמו טיפול בתווים גדולים וקטנים. לדוגמה:
#! / bin / bash
# תפריט מקרה: תוכנית מידע מערכת מונחה תפריט ברורה
הד "
בבקשה תבחר:
A. הצגת מידע מערכת
B. הצג שטח דיסק
C. הצג את ניצול שטח הבית
Q. עזוב"
קרא -p "הזן בחירה [A, B, C או Q] > "
מקרה $REPLY ב
ש|ש) echo "התוכנית הופסקה." יְצִיאָה
;;
א|א) echo זמן פעילות של "Hostname: $HOSTNAME".
;;
ב|ב) df-h
;;
c|C) if [[ $(id -u) -eq 0 ]]; לאחר מכן
echo "ניצול שטח ביתי (כל המשתמשים)" du -sh /home/*
אחר
echo "ניצול שטח ביתי ($USER)" du -sh $HOME
fi
#! / bin / bash
# תפריט מקרה: תוכנית מידע מערכת מונחה תפריט ברורה
הד "
בבקשה תבחר:
A. הצגת מידע מערכת
B. הצג שטח דיסק
C. הצג את ניצול שטח הבית
Q. עזוב"
קרא -p "הזן בחירה [A, B, C או Q] > "
מקרה $REPLY ב
ש|ש) echo "התוכנית הופסקה." יְצִיאָה
;;
א|א) echo זמן פעילות של "Hostname: $HOSTNAME".
;;
ב|ב) df-h
;;
c|C) if [[ $(id -u) -eq 0 ]]; לאחר מכן
echo "ניצול שטח ביתי (כל המשתמשים)" du -sh /home/*
אחר
echo "ניצול שטח ביתי ($USER)" du -sh $HOME
fi
;;
*) הד "כניסה לא חוקית" >&2 יציאה 1
;;
esac
;;
*) הד "כניסה לא חוקית" >&2 יציאה 1
;;
esac
כאן, אנו משנים את תפריט מקרה תוכנית להשתמש באותיות במקום בספרות לבחירת התפריט. שימו לב כיצד הדפוסים החדשים מאפשרים כניסה של אותיות גדולות וקטנות כאחד.