לולאת 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 אונליין