OnWorks Linux ו-Windows Online WorkStations

לוגו

אירוח מקוון בחינם עבור תחנות עבודה

<הקודם | תוכן | הבא>

ביצוע מספר פעולות

בגרסאות של לחבוט לפני 4.0, מקרה אפשר לבצע רק פעולה אחת בהתאמה מוצלחת. לאחר התאמה מוצלחת, הפקודה תסתיים. כאן אנו רואים תסריט שבודק דמות:



#! / bin / bash


# case4-1: בדוק תו


קרא -n 1 -p "הקלד תו > " הד

מקרה $REPLY ב

[[:upper:]]) echo "'$REPLY' הוא אותיות רישיות." ;;

[[:lower:]]) echo "'$REPLY' הוא אותיות קטנות." ;;

[[:alpha:]]) echo "'$REPLY' הוא אלפביתי." ;;

[[:digit:]]) echo "'$REPLY' היא ספרה." ;; [[:graph:]]) echo "'$REPLY' הוא תו גלוי." ;;

[[:punct:]]) echo "'$REPLY' הוא סמל פיסוק." ;; [[:רווח:]]) echo "'$REPLY' הוא תו של רווח לבן." ;; [[:xdigit:]]) echo "'$REPLY' היא ספרה הקסדצימלית." ;;

esac

#! / bin / bash


# case4-1: בדוק תו


קרא -n 1 -p "הקלד תו > " הד

מקרה $REPLY ב

[[:upper:]]) echo "'$REPLY' הוא אותיות רישיות." ;;

[[:lower:]]) echo "'$REPLY' הוא אותיות קטנות." ;;

[[:alpha:]]) echo "'$REPLY' הוא אלפביתי." ;;

[[:digit:]]) echo "'$REPLY' היא ספרה." ;; [[:graph:]]) echo "'$REPLY' הוא תו גלוי." ;;

[[:punct:]]) echo "'$REPLY' הוא סמל פיסוק." ;; [[:רווח:]]) echo "'$REPLY' הוא תו של רווח לבן." ;; [[:xdigit:]]) echo "'$REPLY' היא ספרה הקסדצימלית." ;;

esac


הפעלת הסקריפט הזה מייצרת את זה:



[me@linuxbox ~]$ מקרה 4-1

הקלד תו > a

'a' הוא אותיות קטנות.

[me@linuxbox ~]$ מקרה 4-1

הקלד תו > a

'a' הוא אותיות קטנות.


התסריט עובד ברובו, אך נכשל אם דמות תואמת ליותר מאחת ממעמדות התווים POSIX. לדוגמה, התו "a" הוא גם אותיות קטנות וגם אלפביתי, כמו גם ספרה הקסדצימלית. ב לחבוט לפני גרסה 4.0 לא הייתה דרך מקרה להתאים יותר ממבחן אחד. גרסאות מודרניות של לחבוט, הוסף את הסימון ";;&" ל


לסיים כל פעולה, אז עכשיו נוכל לעשות זאת:



#! / bin / bash


# case4-2: בדוק תו


קרא -n 1 -p "הקלד תו > " הד

מקרה $REPLY ב

[[:upper:]]) echo "'$REPLY' הוא אותיות רישיות." ;;&

[[:lower:]]) echo "'$REPLY' הוא אותיות קטנות." ;;&

[[:alpha:]]) echo "'$REPLY' הוא אלפביתי." ;;&

[[:digit:]]) echo "'$REPLY' היא ספרה." ;;& [[:graph:]]) echo "'$REPLY' הוא תו גלוי." ;;&

[[:punct:]]) echo "'$REPLY' הוא סמל פיסוק." ;;& [[:רווח:]]) echo "'$REPLY' הוא תו של רווח לבן." ;;& [[:xdigit:]]) echo "'$REPLY' היא ספרה הקסדצימלית." ;;&

esac

#! / bin / bash


# case4-2: בדוק תו


קרא -n 1 -p "הקלד תו > " הד

מקרה $REPLY ב

[[:upper:]]) echo "'$REPLY' הוא אותיות רישיות." ;;&

[[:lower:]]) echo "'$REPLY' הוא אותיות קטנות." ;;&

[[:alpha:]]) echo "'$REPLY' הוא אלפביתי." ;;&

[[:digit:]]) echo "'$REPLY' היא ספרה." ;;& [[:graph:]]) echo "'$REPLY' הוא תו גלוי." ;;&

[[:punct:]]) echo "'$REPLY' הוא סמל פיסוק." ;;& [[:רווח:]]) echo "'$REPLY' הוא תו של רווח לבן." ;;& [[:xdigit:]]) echo "'$REPLY' היא ספרה הקסדצימלית." ;;&

esac


כשאנחנו מריצים את הסקריפט הזה, אנחנו מקבלים את זה:



[me@linuxbox ~]$ מקרה 4-2

הקלד תו > a 'a' הוא אותיות קטנות. 'a' הוא אלפביתי.

'a' הוא תו גלוי. 'a' היא ספרה הקסדצימלית.

[me@linuxbox ~]$ מקרה 4-2

הקלד תו > a 'a' הוא אותיות קטנות. 'a' הוא אלפביתי.

'a' הוא תו גלוי. 'a' היא ספרה הקסדצימלית.


התוספת של תחביר ";;&" מאפשרת להמשיך למבחן הבא במקום פשוט להסתיים.


מחשוב ענן מערכת ההפעלה המוביל ב-OnWorks: