משפט if
חלק מהיחידה יסודות במסלול ה-Terminal של Coddy. שיעור 70 מתוך 82.
עד כה, הסקריפטים שלך מריצים כל פקודה מלמעלה למטה בלי לקבל החלטות. אבל מה אם תרצה שהסקריפט שלך יעשה דברים שונים בהתאם לתנאים מסוימים? כאן נכנסת לתמונה הוראת if.
הפקודה if מאפשרת לסקריפט שלך לקבל החלטות. היא בודקת אם תנאי מתקיים, ואם כן, מריצה בלוק קוד. הנה המבנה הבסיסי:
#!/bin/bash
age=18
if [ $age -ge 18 ]; then
echo "You are an adult"
fiהתנאי מופיע בתוך סוגריים מרובעים, עם רווחים סביבו. מילת המפתח then מסמנת את תחילת הקוד שיופעל, ו-fi (אם מאייתים אותה לאחור) מסיימת את ההצהרה.
אפשר גם לטפל במקרה שבו התנאי שקרי באמצעות else:
#!/bin/bash
age=15
if [ $age -ge 18 ]; then
echo "You are an adult"
else
echo "You are a minor"
fiאופרטורי השוואה נפוצים למספרים כוללים את -eq (שווה), -ne (לא שווה), -gt (גדול מ־), -lt (קטן מ־), -ge (גדול או שווה), ואת -le (קטן או שווה). עבור מחרוזות, השתמשו ב־= לשוויון וב־!= לאי־שוויון.
זכור תמיד לכלול רווחים בתוך הסוגריים ולשים את המשתנים שלך במירכאות כדי למנוע שגיאות עם ערכים ריקים.
אתגר
קלצרו סקריפט shell בשם check_score.sh שמשתמש במשפט if כדי להעריך ציון במבחן.
הסקריפט שלכם צריך:
- להתחיל בשורת ה-shebang (
#!/bin/bash) - ליצור משתנה בשם
scoreעם הערך75 - להשתמש במשפט if כדי לבדוק אם הציון גדול מ-70 או שווה לו
- אם התנאי מתקיים, להדפיס:
You passed! - אם התנאי אינו מתקיים, להדפיס:
You failed.
הפכו את הסקריפט לניתן להרצה והריצו אותו. מכיוון שהציון הוא 75, הפלט שלכם צריך להיות:
You passed!רמז: זכרו להשתמש ב-
-geלהשוואה של "גדול מ- או שווה ל-", לכלול רווחים בתוך הסוגריים המרובעים, ולסיים את משפט ה-if ב-fi.אין כאן עורך קבצים, לכן כתבו את הקובץ ישירות דרך ה-shell באמצעות here-document: הקלידו
cat > check_score.sh << 'EOF', אחר כך את שורות הסקריפט, ולבסוף שורה המכילה רקEOF.
נסו בעצמכם
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7תוכן הקובץ
ראש וזנבספירת מיליםפקודת המיוןפקודת הסינון לכפילויותיסודות grepgrep עם דגליםסיכום – בלש/ית טקסט13יסודות כתיבת סקריפטים ב-Shell
מהו סקריפט Shellיצירה והרצה של סקריפטמשתנים בסקריפטיםקלט משתמש בסקריפטיםמשפט ifלולאת forלולאת whileסיכום – נחשו את המספר2ניווט
הצגת ספריית העבודההצגת קבציםשינוי ספרייהנתיבים מוחלטים לעומת יחסייםספריית הבית וספריית השורשסיכום – מצאו את הדרך8ניתוב מחדש
פלט סטנדרטיכתיבה לקובץ תוך דריסת התוכןהוספה לקובץקלט סטנדרטישגיאה סטנדרטיתסיכום – בונה יומני רישום14פרויקט סקריפט לגיבוי
סקירת הפרויקטקבלת נתיב המקורתרגלו בעצמכם: Terminal אונליין