Menu
CoddyTech

לולאת while

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

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

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

#!/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 אונליין