Skip to main content

דוגמאות של BASH 'לולאה'

PHP Syntax (יוני 2026)

PHP Syntax (יוני 2026)
Anonim

BASH (המייצג את Bourne Again Shell) היא שפת scripting המשמשת ברוב מערכות ההפעלה לינוקס ו- UNIX.

אתה יכול להריץ פקודות BASH בתוך חלון מסוף אחד אחרי השני או שאתה יכול להוסיף את הפקודות לקובץ טקסט לייצר סקריפט פגז.

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

לשפות Scripting כגון BASH יש תבניות תכנות דומות לשפות אחרות. לדוגמה, ניתן להשתמש בפרמטרים לייבוא ​​כדי לקבל קלט מהמקלדת ולאחסן אותם כמשתנים. לאחר מכן תוכל לקבל את התסריט לבצע פעולה מסוימת על בסיס הערך של הפרמטרים קלט.

חלק מרכזי של כל שפת תכנות ו scripting היא היכולת להפעיל את אותה פיסת קוד שוב ושוב.

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

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

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

לפני תחילת העבודה

לפני שתתחיל עם דוגמאות לולאה, עליך לפתוח חלון מסוף ולבצע את השלבים הבאים:

  1. להיכנס סקריפטים של mkdir (למידע נוסף על mkdir כאן).

  2. להיכנס סקריפטים (זה משנה את הספרייה סקריפטים ).

  3. להיכנס ננו examplen.sh (איפה n הוא הדוגמה שאתה עובד עליה).

  4. הזן את הסקריפט.

  5. ללחוץ CTRL + O להציל ו CTRL + X לצאת.

  6. הפעלה bash examplen.sh (שוב, עם n להיות דוגמה שאתה עובד עם).

כיצד לולאה דרך רשימה

#! / bin / bashfor מספר ב 1 2 3 4 5doecho $ numberdoneexit 0

הדרך BASH של שימוש "ל" לולאות הוא שונה במקצת בדרך תכנות ביותר בשפות scripting להתמודד עם "ל" לולאות. בואו נשבור את הסקריפט.

ב BASH "עבור" לולאה כל, את ההצהרות בין לעשות ו בוצע מבוצעות פעם אחת עבור כל פריט ברשימה.

בדוגמה לעיל, הרשימה היא כל מה שמגיע אחרי המילה in (דהיינו 1 2 3 4 5).

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

הצהרת ההד משמשת להצגת מידע על המסך.

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

  • 1
  • 2
  • 3
  • 4
  • 5

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

הבעיה עם הדוגמה לעיל היא שאם אתה רוצה לעבד רשימה גדולה יותר (למשל 1 עד 500), זה ייקח הגילאים כדי להקליד את כל המספרים מלכתחילה.

זה מביא אותנו אל הדוגמה השנייה אשר מראה כיצד להגדיר נקודת התחלה וסיום:

#! / bin / bashfor מספר {1..10} doecho "$ number" doneexit 0

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

ההבדל העיקרי הוא הדרך בה הרשימה נוצרת. סוגריים מתולתל {} בעצם מציין טווח, ואת טווח, במקרה זה, הוא 1 עד 10 (שתי נקודות להפריד בין ההתחלה והסוף של טווח).

דוגמה זו, אם כן, עוברת דרך כל מספר בין 1 ל -10 ומפיקה את המספר למסך כדלקמן:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

אותה לולאה היתה יכולה להיכתב כך, עם תחביר זהה לדוגמה הראשונה:

מספר 1 1 2 3 4 5 6 7 8 9 10

כיצד לדלג על מספרים בטווח

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

תאר לעצמך שאתה רוצה לולאה בין 0 ל 100 אבל רק להראות כל מספר עשירית. הסקריפט הבא מראה כיצד לעשות בדיוק את זה:

#! / bin / bashfor מספר {0..100..10} doecho "$ number" doneexit 0

הכללים הם בעצם אותו הדבר. יש רשימה, משתנה, וקבוצה של הצהרות שיש לבצע בין לעשות ו בוצע . הרשימה הפעם נראית כך: {0..100..10}.

המספר הראשון הוא 0 ומספר הסיום הוא 100. המספר השלישי (10) הוא מספר הפריטים ברשימה שהוא ידלג עליהם.

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

  • 0
  • 10
  • 20
  • 30
  • 40
  • 50
  • 60
  • 70
  • 80
  • 90
  • 100

מסורתי יותר מחפש לולאה

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

עם זאת, ניתן לכתוב לולאה בסגנון דומה לשפת התכנות C, כך:

# # / bin / bashfor (מספר = 1, מספר <100, מספר ++)) {אם (($ number% 5 == 0)) ולאחר מכן מספר "$ $ ניתן לחלוקה על ידי 5"

הלולאה מתחילה על ידי הגדרת מספר המשתנה ל 1 (מספר = 1 ). לולאה תמשיך איטרטינג בעוד הערך של מספר הוא פחות מ -100 ( מספר <100 ). הערך של מספר שינויים על ידי הוספת 1 אליו לאחר כל איטרציה ( ° ++ ).

הכל בין הפלטה המתולתל מתבצע דרך כל איטרציה של הלולאה.

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

לדוגמה:

  • 5 הוא חלוקה על ידי 5
  • 10 הוא חלוקה על ידי 5
  • 15 הוא מתחלק על ידי 5

אם אתה רוצה לשנות את גודל הצעד של איטרציה אתה יכול לתקן את מספר + + קטע להיות מספר + מספר + 2 , מספר + מספר + 5 , או מספר + מספר + 10 וכו '

זה יכול להיות עוד יותר מופחת number + = 2 או מספר + = 5 .

דוגמה מעשית

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

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

#! / bin / bashעבור הקובץ ./**p3dompg -w ./wavs/"${file}".wav "$ file" נעשה

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

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