logo

Bash While Loop

בנושא זה, הדגמנו כיצד להשתמש בהצהרת while ב-Bash Script.

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

תחביר של Bash While Loop

ל-Bash while loop יש את הפורמט הבא:

מטריצת לטקס
 while [ expression ]; do commands; multiple commands; done 

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

אם יש מספר תנאים לכלול בביטוי, אז התחביר של לולאת while יהיה כדלקמן:

 while [ expressions ]; do commands; multiple commands; done 

ניתן להגדיר את תחביר ה-while one-liner כ:

 while [ condition ]; do commands; done while control-command; do Commands; done 

יש כמה נקודות מפתח בהצהרת 'בזמן לולאה':

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

איך זה עובד

לולאת ה-while היא לולאת כניסה מוגבלת. זה אומר שהתנאי נבדק לפני ביצוע הפקודות של לולאת while. אם התנאי מוערך כ-true, קבוצת הפקודות שאחריה תנאי זה מבוצעות. אחרת, הלולאה מסתיימת, ובקרת התוכנית ניתנת לפקודה האחרת בעקבות ההצהרה 'בוצע'.

Bash While Loop דוגמאות

להלן כמה דוגמאות ל-bash while loop:

בעוד לולאה עם מצב יחיד

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

דוגמא

 #!/bin/bash #Script to get specified numbers read -p 'Enter starting number: ' snum read -p 'Enter ending number: ' enum while [[ $snum -le $enum ]]; do echo $snum ((snum++)) done echo 'This is the sequence that you wanted.' 

תְפוּקָה

Bash While Loop

תוך כדי לולאה עם מספר תנאים

להלן דוגמה ללולאת while עם מספר תנאים בביטוי:

דוגמא

 #!/bin/bash #Script to get specified numbers read -p 'Enter starting number: ' snum read -p 'Enter ending number: ' enum while [[ $snum -lt $enum || $snum == $enum ]]; do echo $snum ((snum++)) done echo 'This is the sequence that you wanted.' 

תְפוּקָה

אובייקט ב-java
Bash While Loop

Infinite While Loop

לולאה אינסופית היא לולאה שאין לה סיום או סיום. אם התנאי תמיד מוערך כאמת, הוא יוצר לולאה אינסופית. הלולאה תתבצע ברציפות עד שתופסק בכוח באמצעות CTRL+C:

דוגמא

 #!/bin/bash #An infinite while loop while : do echo 'Welcome to Javatpoint.' done 

נוכל גם לכתוב את התסריט שלעיל בשורה אחת כ:

 #!/bin/bash #An infinite while loop while :; do echo 'Welcome to Javatpoint.'; done 

תְפוּקָה

Bash While Loop

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

דוגמא

 #!/bin/bash #An infinite while loop while true do echo 'Welcome to Javatpoint' done 

סקריפט bash זה יספק גם את אותו פלט כמו סקריפט אינסופי למעלה.

הערה: ניתן לסיים לולאות אינסופיות באמצעות CTRL+C או על ידי הוספת יציאה מותנית כלשהי בתוך הסקריפט.

תוך כדי לולאה עם הצהרת הפסקה

ניתן להשתמש בהצהרת break כדי לעצור את הלולאה בהתאם לתנאי המוחל. לדוגמה:

גיל מיה חליפה

דוגמא

 #!/bin/bash #While Loop Example with a Break Statement echo 'Countdown for Website Launching...' i=10 while [ $i -ge 1 ] do if [ $i == 2 ] then echo 'Mission Aborted, Some Technical Error Found.' break fi echo '$i' (( i-- )) done 

תְפוּקָה

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

Bash While Loop

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

ניתן להשתמש במשפט continue כדי לדלג על האיטרציה עבור מצב ספציפי בתוך לולאת ה-while.

דוגמא

 #!/bin/bash #While Loop Example with a Continue Statement i=0 while [ $i -le 10 ] do ((i++)) if [[ '$i' == 5 ]]; then continue fi echo 'Current Number : $i' done echo 'Skipped number 5 using Continue Statement.' 

תְפוּקָה

Bash While Loop

תוך כדי לולאה עם C-Style

אנחנו יכולים גם לכתוב while loop בסקריפט bash בדומה ל-while loop בשפת התכנות C.

דוגמא

 #!/bin/bash #While loop example in C style i=1 while((i <= 10)) do echo $i let i++ done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/46/bash-while-loop-6.webp" alt="Bash While Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use while loop statement in Bash to perform specific tasks.</p> <hr></=>