Case statements - תחביר חלופי לכתיבת חלופות בשפת Bash
במדריך קודם בסדרת ה-linux למדנו כיצד לקודד תנאים בשפת Bash. באותו מדריך גם ראינו שאם צריך לקודד תנאים מרובים התחביר עלול להיות מייגע לכתיבה ולקריאה. במקרים אילה, כדי לחסוך עבודה מיותרת ניתן להשתמש במקום בתחביר case statement.
את ה-case statement נתחיל עם המחרוזת case ונסיים במחרוזת esac.
התוכנית הקצרה הבאה מאפשרת למשתמש להזין בתור קלט את שפת התכנות החביבה עליו, ולקבל פלט הודעה קצרה על המסך המשתנה בהתאם לבחירה שעשה:
#! /usr/bin/bash
echo -e "Type your favorite language then hit [enter]"
echo -e "E.g. bash, python, javascript, etc."
echo "Type: "
read my_lang
# to lowercase
my_animal="${my_lang}"
case $my_lang in
"bash")
echo -e "great language to automate projects";;
"python")
echo -e "incredible for data analysis and machine learning
";;
"javascript")
echo -e "the simplest to use when creating websites";;
"dart")
echo -e "makes programming mobile apps great again";;
*)
echo -e "sorry! Have nothing to say about the language"
esac
- case statement מתחיל ב-case ומסתיים ב-case הרשום בהיפוך אותיות (esac)
- Bash עובר על כל אחת מהאפשרויות לפי הסדר.
- אם המשתמש הזין את הקלטים שהתוכנה מזהה כתנאי אז התוכנית תוציא לפועל את בלוק הקוד שמתחת לאותו תנאי.
- כל בלוק קוד לביצוע מסתיים בפעמיים נקודה פסיק (;;).
- אם הקלט אינו ברשימה אז Bash יבצע את מה שמופיע תחת הכוכבית. במקרה זה אין צורך בפעמיים נקודתיים בסוף השורה.
זה עובד לא רק על מחרוזות אלא גם על מספרים. נדגים באמצעות הסקריפט הקצר הבא שהופך את הטרמינל למחשבון:
echo -e "Type your math question into the terminal, e.g. 5 x 3, then hit [Enter]."
echo -e "Valid operators are: +, -, x, / or %"
echo -e "Type: "
read i1 op i2
case $op in
'+')
((res=$i1+$i2)) ;;
'-')
((res=$i1-$i2)) ;;
'x')
((res=$i1*$i2)) ;;
'/')
((res=$i1/$i2)) ;;
'%')
((res=$i1%$i2)) ;;
*)
echo "Error! $op is not a valid operation"
exit 0 ;;
esac
echo "$i1 $op $i2 = $res"
מדריכים בנושא לינוקס שעשויים לעניין אותך
סקריפט ראשון בשפת bash - שלום עולם כמובן!
סקריפט ראשון בשפת bash - שלום עולם כמובן!
מדריך Awk - פקודה של Bash שהיא גם (סוג של) שפת תכנות
אהבתם? לא אהבתם? דרגו!
0 הצבעות, ממוצע 0 מתוך 5 כוכבים
המדריכים באתר עוסקים בנושאי תכנות ופיתוח אישי. הקוד שמוצג משמש להדגמה ולצרכי לימוד. התוכן והקוד המוצגים באתר נבדקו בקפידה ונמצאו תקינים. אבל ייתכן ששימוש במערכות שונות, דוגמת דפדפן או מערכת הפעלה שונה ולאור השינויים הטכנולוגיים התכופים בעולם שבו אנו חיים יגרום לתוצאות שונות מהמצופה. בכל מקרה, אין בעל האתר נושא באחריות לכל שיבוש או שימוש לא אחראי בתכנים הלימודיים באתר.
למרות האמור לעיל, ומתוך רצון טוב, אם נתקלת בקשיים ביישום הקוד באתר מפאת מה שנראה לך כשגיאה או כחוסר עקביות נא להשאיר תגובה עם פירוט הבעיה באזור התגובות בתחתית המדריכים. זה יכול לעזור למשתמשים אחרים שנתקלו באותה בעיה ואם אני רואה שהבעיה עקרונית אני עשוי לערוך התאמה במדריך או להסיר אותו כדי להימנע מהטעיית הציבור.
שימו לב! הסקריפטים במדריכים מיועדים למטרות לימוד בלבד. כשאתם עובדים על הפרויקטים שלכם אתם צריכים להשתמש בספריות וסביבות פיתוח מוכחות, מהירות ובטוחות.
המשתמש באתר צריך להיות מודע לכך שאם וכאשר הוא מפתח קוד בשביל פרויקט הוא חייב לשים לב ולהשתמש בסביבת הפיתוח המתאימה ביותר, הבטוחה ביותר, היעילה ביותר וכמובן שהוא צריך לבדוק את הקוד בהיבטים של יעילות ואבטחה. מי אמר שלהיות מפתח זו עבודה קלה ?
השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.