Menu
Coddy logo textTech

משפט 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 (קטן או שווה). עבור מחרוזות, השתמשו ב־= לשוויון וב־!= לאי־שוויון.

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

challenge icon

אתגר

קל

צרו סקריפט shell בשם check_score.sh שמשתמש במשפט if כדי להעריך ציון במבחן.

הסקריפט שלכם צריך:

  1. להתחיל בשורת ה-shebang (#!/bin/bash)
  2. ליצור משתנה בשם score עם הערך 75
  3. להשתמש במשפט if כדי לבדוק אם הציון גדול מ-70 או שווה לו
  4. אם התנאי מתקיים, להדפיס: You passed!
  5. אם התנאי אינו מתקיים, להדפיס: You failed.

הפכו את הסקריפט לניתן להרצה והריצו אותו. מכיוון שהציון הוא 75, הפלט שלכם צריך להיות:

You passed!

רמז: זכרו להשתמש ב--ge להשוואה של "גדול מ- או שווה ל-", לכלול רווחים בתוך הסוגריים המרובעים, ולסיים את משפט ה-if ב-fi.

אין כאן עורך קבצים, לכן כתבו את הקובץ ישירות דרך ה-shell באמצעות here-document: הקלידו cat > check_score.sh << 'EOF', אחר כך את שורות הסקריפט, ולבסוף שורה המכילה רק EOF.

נסו בעצמכם

טרמינל
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: Terminal אונליין