בנושא זה נבין את השימוש ב עבור לולאה בתסריטי 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 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.'
תְפוּקָה
עבור לולאה כדי לקרוא טווח עם תוספת/ירידה
אנו יכולים להגדיל או להקטין ערך שצוין על ידי הוספת שתי נקודות נוספות (..) והערך לצעד, למשל, {START..END..INCREMENT}. בדוק את הדוגמה למטה:
עבור תוספת
#!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done
תְפוּקָה
לירידה
#!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done
תְפוּקָה
עבור משתני מערך לולאה לקריאה
אנו יכולים להשתמש ב-'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 ארוך למחרוזת
עבור 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
תְפוּקָה
ל-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
תְפוּקָה
הערה: ההבדל היחיד בין 'כדי ללולאה לקרוא רווחים לבנים במחרוזת כמפרידי מילים' לבין 'ללול לקרוא כל שורה במחרוזת כמילה' הוא המירכאות הכפולות סביב משתנה המחרוזת.
ל-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 'break' statement can be used inside 'for' 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 'continue' statement inside the 'for' 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' 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 'start, condition, and increment' 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 'Current Number: $((i++))' 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;>
תְפוּקָה
עבור לולאה עם הצהרת המשך
אנו יכולים להשתמש בהצהרה 'המשך' בתוך לולאת ה'for' כדי לדלג על כל משפט ספציפי בתנאי מסוים. זה אומר לבאש להפסיק לבצע את האיטרציה המסוימת של הלולאה ולעבד את האיטרציה הבאה.
Bash Script
#!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement' 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 'start, condition, and increment' 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 'Current Number: $((i++))' 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 לביצוע משימות ספציפיות
=20;>=10;>