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 2 3 4 5.

בכל פעם שהלולאה חוזרת, הערך הבא ברשימה מוכנס למשתנה שצוין אחרי המילה ל. בלולאה לעיל, המשתנה נקרא מספר.

ה הֵד הצהרה מציגה מידע למסך. לכן, דוגמה זו לוקחת את המספרים 1 עד 5 ומוציאה כל מספר אחד אחד למסך:

דוגמה ללולאה בסקריפט bash

כיצד לבצע לולאה בין נקודת התחלה לסיום

הבעיה עם סקריפט 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) הוא מספר הפריטים ברשימה שעליהם הוא ידלג.

הדוגמה לעיל, אם כן, מציגה את הפלט הבא:

פלט לולאת bash חלופי

דוגמה מעשית

עבור לולאות לעשות יותר מאשר לחזור על רשימות של מספרים. לדוגמה, השתמש בפלט של פקודות אחרות כרשימה.

הדוגמה הבאה מראה כיצד להמיר קבצי אודיו מ MP3 ל WAV:

#!/bin/bash
לקובץ ב-./*.mp3
לַעֲשׂוֹת
mpg -w ./wavs/"${file}".wav "$file"
בוצע

הרשימה בדוגמה זו היא כל קובץ עם סיומת .MP3 בתיקייה הנוכחית, והמשתנה הוא קובץ.

הפקודה mpg ממירה את קובץ ה-MP3 ל-WAV. עם זאת, כנראה שתצטרך להתקין את הכלי הזה באמצעות מנהל חבילות תחילה.