לולאת for
חלק מהיחידה יסודות במסלול ה-Terminal של Coddy. שיעור 71 מתוך 82.
לפעמים צריך לחזור על פעולה כמה פעמים. במקום לכתוב את אותה פקודה שוב ושוב, אפשר להשתמש בלולאת for כדי לעבור על רשימת פריטים ולבצע פעולה על כל אחד מהם.
זהו המבנה הבסיסי של לולאת for ב-Bash:
#!/bin/bash
for name in Alice Bob Charlie; do
echo "Hello, $name!"
doneהסקריפט הזה מדפיס ברכה לכל שם ברשימה. המשתנה name מקבל כל ערך בתורו: תחילה "Alice", אחר כך "Bob", ואז "Charlie". מילת המפתח do מסמנת את תחילת גוף הלולאה, ו-done מסיימת אותו.
לולאות for חזקות במיוחד בשילוב עם תווים כלליים. אפשר לעבור בלולאה על כל הקבצים שבתיקייה:
#!/bin/bash
for file in *.txt; do
echo "Processing $file"
doneהפעולה עוברת על כל קובץ .txt בספרייה הנוכחית. בכל איטרציה, המשתנה file מכיל את שם הקובץ הנוכחי, וכך אפשר לבצע פעולות על כל קובץ באופן אוטומטי.
אפשר גם לעבור בלולאה על טווח של מספרים באמצעות הרחבת סוגריים מסולסלים:
#!/bin/bash
for i in {1..5}; do
echo "Number: $i"
doneהפעולה הזו מדפיסה את המספרים מ-1 עד 5. לולאות הופכות משימות חוזרות לכמה שורות קוד בלבד, וכך הופכות את הסקריפטים שלך ליעילים יותר וקלים יותר לתחזוקה.
אתגר
קלצרו סקריפט shell בשם countdown.sh שמשתמש בלולאת for כדי להדפיס ספירה לאחור מ־5 עד 1.
הסקריפט שלכם צריך:
- להתחיל בשורת shebang (
#!/bin/bash) - להשתמש בלולאת for עם הרחבת סוגריים מסולסלים כדי לעבור על המספרים מ־5 עד 1 בסדר יורד
- להדפיס כל מספר בשורה משלו בפורמט:
Countdown: [number]
הפכו את הסקריפט לקובץ בר־הרצה והפעילו אותו. הפלט שלכם צריך להיות:
Countdown: 5
Countdown: 4
Countdown: 3
Countdown: 2
Countdown: 1רמז: השתמשו ב־
{5..1}כדי ליצור טווח יורד. בתוך הלולאה, השתמשו ב־echo "Countdown: $i"כאשרiהוא משתנה הלולאה שלכם.
נסו בעצמכם
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7תוכן הקובץ
ראש וזנבספירת מיליםפקודת המיוןפקודת הסינון לכפילויותיסודות grepgrep עם דגליםסיכום – בלש/ית טקסט13יסודות כתיבת סקריפטים ב-Shell
מהו סקריפט Shellיצירה והרצה של סקריפטמשתנים בסקריפטיםקלט משתמש בסקריפטיםמשפט ifלולאת forלולאת whileסיכום – נחשו את המספר2ניווט
הצגת ספריית העבודההצגת קבציםשינוי ספרייהנתיבים מוחלטים לעומת יחסייםספריית הבית וספריית השורשסיכום – מצאו את הדרך8ניתוב מחדש
פלט סטנדרטיכתיבה לקובץ תוך דריסת התוכןהוספה לקובץקלט סטנדרטישגיאה סטנדרטיתסיכום – בונה יומני רישום14פרויקט סקריפט לגיבוי
סקירת הפרויקטקבלת נתיב המקורתרגלו בעצמכם: Terminal אונליין