logo

Bash For Loop

בנושא זה נבין את השימוש ב עבור לולאה בתסריטי Bash.

כמו כל שפת תכנות אחרת, גם סקריפטים של bash shell תומך ב-'for loops' לביצוע משימות חוזרות. זה עוזר לנו לחזור על קבוצה מסוימת של הצהרות על פני סדרה של מילים במחרוזת, או אלמנטים במערך. לדוגמה, אתה יכול להריץ את פקודת UNIX (או משימה) פעמים רבות או פשוט לקרוא ולעבד את רשימת הפקודות באמצעות 'ללולאה'.

תחביר של For Loop

אנו יכולים ליישם 'ללולאה' על סקריפט bash בשתי דרכים. דרך אחת היא 'for-in' ודרך אחרת היא התחביר בסגנון c. להלן התחביר של 'ללולאה' ב-bash shell scripting:

 for variable in list do commands done 

אוֹ

 for (( expression1; expression2; expression3 )) do commands done 

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

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

כמה מהדוגמאות של 'ללולאה' ניתנות להלן כדי להמחיש כיצד הן פועלות:

דוגמה בסיסית של 'ללולאה'

Bash Script

 #!/bin/bash #This is the basic example of 'for loop'. learn='Start learning from Javatpoint.' for learn in $learn do echo $learn done echo 'Thank You.' 

תְפוּקָה

Bash For Loop

עבור לולאה לקריאת טווח

Bash Script

 #!/bin/bash #This is the basic example to print a series of numbers from 1 to 10. for num in {1..10} do echo $num done echo 'Series of numbers from 1 to 10.' 

תְפוּקָה

Bash For Loop

עבור לולאה כדי לקרוא טווח עם תוספת/ירידה

אנו יכולים להגדיל או להקטין ערך שצוין על ידי הוספת שתי נקודות נוספות (..) והערך לצעד, למשל, {START..END..INCREMENT}. בדוק את הדוגמה למטה:

עבור תוספת

 #!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done 

תְפוּקָה

Bash For Loop

לירידה

 #!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done 

תְפוּקָה

Bash For Loop

עבור משתני מערך לולאה לקריאה

אנו יכולים להשתמש ב-'for loop' כדי לחזור על הערכים של מערך.

מנהל משימות עבור לינוקס

ניתן להגדיר את התחביר כך:

 array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done 

תְפוּקָה

עבור כל רכיב ב-'array', ההצהרות או קבוצת הפקודות מ-'do' עד 'done' מבוצעות. ניתן היה לגשת לכל רכיב בתור 'i' בתוך הלולאה עבור האיטרציה המתאימה. בדוק את הדוגמה שלהלן המסבירה את השימוש ב-'for loop' כדי לחזור על אלמנטים של מערך:

Bash Script

 #!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done 

תְפוּקָה

java ארוך למחרוזת
Bash For Loop

עבור Loop to Read רווחים לבנים במחרוזת כמפרידי מילים

ניתן להגדיר את התחביר כך:

 #!/bin/bash for word in $str; do done 

כאן, str מתייחס למחרוזת.

ההצהרות מ'עשה' עד 'בוצע' מבוצעות עבור כל 'מילה' של מחרוזת. בדוק את הדוגמה למטה:

Bash Script

 #!/bin/bash #For Loop to Read white spaces in String as word separators str='Let's start learning from Javatpoint.' for i in $str; do echo '$i' done 

תְפוּקָה

Bash For Loop

ל-Loop לקרוא כל שורה במחרוזת כמילה

ניתן להגדיר את התחביר כך:

 #!/bin/bash for word in '$str'; do done 

כאן, ההצהרות מ'עשה' עד 'בוצע' מבוצעות עבור כל 'שורה' של מחרוזת. בדוק את הדוגמה למטה:

Bash Script

 #!/bin/bash #For Loop to Read each line in String as a word str='Let's start learning from Javatpoint.' for i in '$str'; do echo '$i' done 

תְפוּקָה

Bash For Loop

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

ל-Loop to Read שלושה ביטויים

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

עיין בדוגמה למטה כדי להדפיס 1 עד 10 מספרים באמצעות שלושה ביטויים עם for loop:

Bash Script

 #!/bin/bash #For Loop to Read Three-expression for ((i=1; i<=10; i++)) do echo '$i' done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-8.webp" alt="Bash For Loop"> <h3>For Loop with a Break Statement</h3> <p>A &apos;break&apos; statement can be used inside &apos;for&apos; loop to terminate from the loop.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Table of 2 for table in {2..100..2} do echo $table if [ $table == 20 ]; then break fi done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-9.webp" alt="Bash For Loop"> <h3>For Loop with a Continue Statement</h3> <p>We can use the &apos;continue&apos; statement inside the &apos;for&apos; loop to skip any specific statement on a particular condition. It tells Bash to stop executing that particular iteration of the loop and process the next iteration.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no &apos;start, condition, and increment&apos; in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo &apos;Current Number: $((i++))&apos; done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;></pre></=10;>

תְפוּקָה

Bash For Loop

עבור לולאה עם הצהרת המשך

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

Bash Script

 #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no &apos;start, condition, and increment&apos; in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo &apos;Current Number: $((i++))&apos; done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;>

תְפוּקָה

Bash For Loop

סיכום

בנושא זה, דנו כיצד להשתמש בהצהרת לולאה ב-Bash לביצוע משימות ספציפיות