Menu
Coddy logo textTech

לולאת while

חלק מהיחידה יסודות במסלול ה-Terminal של Coddy. שיעור 72 מתוך 82.

לולאת for מצוינת כשידוע לך בדיוק על אילו פריטים לעבור. אבל מה אם רוצים להמשיך בלולאה עד שתנאי מסוים משתנה? כאן נכנסת לתמונה לולאת while.

לולאת while ממשיכה לפעול כל עוד התנאי שלה נשאר true. הנה המבנה הבסיסי:

#!/bin/bash
count=1
while [ $count -le 5 ]; do
    echo "Count: $count"
    count=$((count + 1))
done

הסקריפט הזה מדפיס את המספרים 1 עד 5.

הלולאה בודקת אם count קטן או שווה ל־5. אם כן, היא מריצה את גוף הלולאה, מגדילה את המונה באמצעות $((...)) לצורך חישוב אריתמטי, ובודקת שוב.

ברגע ש־count מגיע ל־6, התנאי הופך לשקר והלולאה נעצרת.

לולאות while מתאימות במיוחד כשלא ידוע מראש כמה איטרציות תצטרך. לדוגמה, ייתכן שתמשיך לבקש קלט עד שהמשתמש יקליד "quit":

#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
    read -p "Enter command (quit to exit): " input
    echo "You entered: $input"
done

היזהרו עם לולאות while. אם התנאי לעולם לא הופך לשקרי, הלולאה שלכם תרוץ לנצח.

הקפד תמיד שמשהו בתוך הלולאה ישנה בסופו של דבר את התנאי, למשל הגדלת מונה או עדכון משתנה על סמך קלט מהמשתמש.

challenge icon

אתגר

קל

צרו סקריפט shell בשם counter.sh שמשתמש בלולאת while כדי להדפיס מספרים מ-1 עד 4.

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

  1. להתחיל בשורת shebang (#!/bin/bash)
  2. ליצור משתנה בשם num עם הערך ההתחלתי 1
  3. להשתמש בלולאת while שנמשכת כל עוד num קטן או שווה ל-4
  4. בתוך הלולאה, להדפיס את המספר הנוכחי בתבנית: Number: [num]
  5. להגדיל את num ב-1 אחרי כל איטרציה באמצעות $((num + 1))

הפכו את הסקריפט לבר־הרצה והריצו אותו. הפלט שלכם צריך להיות:

Number: 1
Number: 2
Number: 3
Number: 4

רמז: השתמשו ב--le להשוואה של "קטן או שווה ל-". זכרו להגדיל את המונה בתוך הלולאה באמצעות num=$((num + 1)) כדי להימנע מלולאה אינסופית. סיימו את לולאת ה-while עם done.

נסו בעצמכם

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

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

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

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