logo

Bash Case

בנושא זה, נדון ביסודות של הצהרות מקרה וכיצד להשתמש בהם בתסריטי Bash.

הצהרת המקרה של Bash היא הצורה הפשוטה ביותר של IF-THEN-ELSE עם אלמנטים רבים של ELIF. השימוש בהצהרת המקרה הופך את סקריפט ה-bash שלנו לקריאה יותר וקל יותר לתחזוקה. אלה מיושמים בדרך כלל כדי לפשט את התנאים המורכבים עם מספר אפשרויות שונות.

הצהרת המקרה של Bash עוקבת אחר היגיון דומה כמו הצהרת Javascript או C switch. יש הבדל קל, כדלקמן:

  • הצהרת המקרה של Bash לוקחת ערך פעם אחת ובודקת ערך זה מספר פעמים. הוא מפסיק לחפש דפוס ברגע שהוא מצא אותו והוציא לפועל את ההצהרה המקושרת אליו, וזה כמעט הפוך במקרה של הצהרת C switch.

תחביר הצהרת מקרה

תחביר של הצהרת מקרה bash ניתן להלן:

 case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac 

יש כמה נקודות מפתח של הצהרות מקרה bash:

  • כל הצהרת מקרה ב-bash מתחילה במילת המפתח 'מקרה', ואחריה ביטוי המקרה ומילת המפתח 'ב'. הצהרת המקרה נסגרת על ידי מילת מפתח 'esac'.
  • אנו יכולים ליישם מספר תבניות מופרדות על ידי | מַפעִיל. האופרטור ) מציין את סיום רשימת תבניות.
  • תבנית המכילה את ההצהרות מכונה פסקה, והיא חייבת להסתיים באמצעות נקודה-פסיק כפולה (;;).
  • סמל כוכבית (*) משמש כתבנית סופית כדי להגדיר את מקרה ברירת המחדל. הוא משמש כמקרה ברירת מחדל כאשר הוא משמש כמקרה האחרון.

איך זה עובד

קודם כל, הצהרת המקרה מרחיבה את הביטוי ומנסה להתאים לכל אחת מהדפוסים הכלולים. כאשר הוא מוצא התאמה, כל ההצהרות המקושרות מבוצעות עד לנקודה-פסיק הכפולה (;;). לאחר ההתאמה הראשונה, מקרה מסתיים עם סטטוס היציאה של ההצהרה האחרונה שבוצעה.

אם אין דפוס תואם, מצב היציאה של התיק הוא אפס. אחרת, סטטוס ההחזרה הוא סטטוס היציאה של ההצהרות שבוצעו.

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

בואו ננסה להבין את המנגנון הזה בעזרת כמה דוגמאות:

דוגמה 1

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

Bash Script

 #!/bin/bash echo 'Do you know Java Programming?' read -p 'Yes/No? :' Answer case $Answer in Yes|yes|y|Y) echo 'That's amazing.' echo ;; No|no|N|n) echo 'It's easy. Let's start learning from javatpoint.' ;; esac 

תְפוּקָה

Bash Case

דוגמה 2

בדוגמה זו, הגדרנו תרחיש משולב שבו יש גם מקרה ברירת מחדל כאשר לא נמצא מקרה תואם קודם.

Java פותחת קובץ

Bash Script

 #!/bin/bash echo 'Which Operating System are you using?' echo 'Windows, Android, Chrome, Linux, Others?' read -p 'Type your OS Name:' OS case $OS in Windows|windows) echo 'That's common. You should try something new.' echo ;; Android|android) echo 'This is my favorite. It has lots of applications.' echo ;; Chrome|chrome) echo 'Cool!!! It's for pro users. Amazing Choice.' echo ;; Linux|linux) echo 'You might be serious about security!!' echo ;; *) echo 'Sounds interesting. I will try that.' echo ;; esac 

תְפוּקָה

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

Bash Case

סיכום

בנושא זה, למדנו על התחביר והשימוש בהצהרת Bash Case עם הדוגמאות.