Linux Shell Script דוגמאות של BASH 'for' Loop
מה צריך לדעת
- בבאש ל לולאה, כל ההצהרות בין לַעֲשׂוֹת ו בוצע מבוצעות פעם אחת עבור כל פריט ברשימה או בטווח מספרים.
- עם רשימה גדולה, השתמש ב {list} ללולאה בין נקודת התחלה לסיום. השתמש באליפסיס כדי לחזור על טווח מספרים מלא, למשל, למספר ב-{1..10}.
- כדי לדלג על מספרים מסוימים, הוסף מספר שלישי לטווח. לדוגמה, השתמש {0..100..10} לרשום רק כל מספר 10.
בשפת תכנות או סקריפטים, Bash מציעה מספר דרכים לחזור על קוד - תהליך הנקרא לולאה - כאשר ל לולאה חוזרת על קטע מסוים בקוד. זה מאפשר לסדרה של פקודות לפעול עד לתנאי מסוים. במדריך זה, אנו מראים לך כיצד לכתוב Bash ל לוּלָאָה.
איך לעבור בלולאה ברשימה
שפות סקריפטים כמו Bash כוללות מבני תכנות דומים לשפות אחרות. לדוגמה, ייבוא פרמטרים לקבל קלט מהמקלדת ולאחסן את התשומות הללו כמשתנים, אשר לאחר מכן לבצע פעולה מסוימת על סמך הערך של פרמטרי הקלט.
שקול דוגמה פשוטה לסקריפט שכותרתו loop.sh:
#!/bin/bash
למספר ב-1 2 3 4 5
לַעֲשׂוֹת
echo $number
בוצע
יציאה 0
דרך השימוש של Bash ל לולאות שונה במקצת מהדרך שבה שפות תכנות וסקריפט אחרות מטפלות ל לולאות. בואו נפרק את התסריט.
ב-BASH ל לולאה, כל ההצהרות שביניהם
בכל פעם שהלולאה חוזרת, הערך הבא ברשימה מוכנס למשתנה שצוין אחרי המילה ל. בלולאה לעיל, המשתנה נקרא מספר.
ה הֵד הצהרה מציגה מידע למסך. לכן, דוגמה זו לוקחת את המספרים 1 עד 5 ומוציאה כל מספר אחד אחד למסך:

כיצד לבצע לולאה בין נקודת התחלה לסיום
הבעיה עם סקריפט loop.sh זה היא שאם אתה רוצה לעבד רשימה גדולה יותר (לדוגמה, 1 עד 500), ייקח עידנים כדי להקליד את כל המספרים. במקום זאת, ציין נקודת התחלה וסוף:
#!/bin/bash
למספר ב-{1..10}
לַעֲשׂוֹת
הד "מספר $"
בוצע
יציאה 0
הכללים זהים. הערכים שאחרי המילה ב מרכיבים את הרשימה כדי לחזור עליה, וכל ערך ברשימה ממוקם במשתנה (כלומר, מספר), ובכל פעם שהלולאה חוזרת, ההצהרות בין לַעֲשׂוֹת ו בוצע מבוצעות.
ההבדל העיקרי הוא הדרך בה הרשימה נוצרת. הסוגריים המתולתלים מציינים טווח, והטווח, במקרה זה, הוא 1 עד 10 (שתי הנקודות מפרידות בין ההתחלה והסוף של טווח).
דוגמה זו, אם כן, עוברת דרך כל מספר בין 1 ל-10 ומוציאה את המספר למסך.
אותה לולאה הייתה יכולה להיכתב כך, עם תחביר זהה לדוגמא הראשונה:
למספר ב-1 2 3 4 5 6 7 8 9 10
כיצד לדלג על מספרים בטווח
הדוגמה הקודמת הראתה כיצד לבצע לולאה בין נקודת התחלה לנקודת סיום. הנה איך לדלג על מספרים בטווח.
לדוגמה, ללולאה בין 0 ל-100 אך להציג רק כל מספר עשירי, השתמש בסקריפט הבא כדי להשיג פלט זה:
#!/bin/bash
למספר ב-{0..100..10}
לַעֲשׂוֹת
הד "מספר $"
בוצע
יציאה 0
הכללים זהים. יש רשימה, משתנה ומערכת של הצהרות שיש לבצע ביניהם לַעֲשׂוֹת ו בוצע. הרשימה הפעם נראית כך: {0..100..10}.
המספר הראשון הוא 0 והמספר הסופי הוא 100. המספר השלישי (10) הוא מספר הפריטים ברשימה שעליהם הוא ידלג.
הדוגמה לעיל, אם כן, מציגה את הפלט הבא:

דוגמה מעשית
עבור לולאות לעשות יותר מאשר לחזור על רשימות של מספרים. לדוגמה, השתמש בפלט של פקודות אחרות כרשימה.
הדוגמה הבאה מראה כיצד להמיר קבצי אודיו מ MP3 ל WAV:
#!/bin/bash
לקובץ ב-./*.mp3
לַעֲשׂוֹת
mpg -w ./wavs/"${file}".wav "$file"
בוצע
הרשימה בדוגמה זו היא כל קובץ עם סיומת .MP3 בתיקייה הנוכחית, והמשתנה הוא קובץ.
הפקודה mpg ממירה את קובץ ה-MP3 ל-WAV. עם זאת, כנראה שתצטרך להתקין את הכלי הזה באמצעות מנהל חבילות תחילה.