في هذا الموضوع سوف نفهم استخدام لحلقة في البرامج النصية باش.
مثل أي لغة برمجة أخرى، تدعم البرمجة النصية bash shell أيضًا 'حلقات for' لتنفيذ المهام المتكررة. فهو يساعدنا على تكرار مجموعة معينة من العبارات عبر سلسلة من الكلمات في سلسلة، أو عناصر في مصفوفة. على سبيل المثال، يمكنك إما تشغيل أمر (أو مهمة) UNIX عدة مرات أو مجرد قراءة قائمة الأوامر ومعالجتها باستخدام 'حلقة for'.
بناء الجملة للحلقة
يمكننا تطبيق 'for Loop' على البرنامج النصي bash بطريقتين. إحدى الطرق هي 'for-in' والطريقة الأخرى هي بناء جملة النمط c. فيما يلي بناء جملة 'for Loop' في البرمجة النصية لـ bash Shell:
for variable in list do commands done
أو
for (( expression1; expression2; expression3 )) do commands done
هناك بعض النقاط الرئيسية في عبارة 'for Loop':
- تبدأ كل كتلة من 'for Loop' في bash بالكلمة الأساسية 'do' متبوعة بالأوامر الموجودة داخل الكتلة. يتم إغلاق عبارة 'for Loop' بواسطة الكلمة الأساسية 'done'.
- يعتمد عدد الوقت الذي ستتكرر فيه 'حلقة for' على متغيرات القائمة المعلنة.
- ستقوم الحلقة باختيار عنصر واحد من القائمة وتعيين القيمة للمتغير الذي سيتم استخدامه داخل الحلقة.
- بعد تنفيذ الأوامر بين 'do' و'done'، تعود الحلقة إلى الأعلى وتحدد العنصر التالي من القائمة وتكرر العملية بأكملها.
- يمكن أن تحتوي القائمة على أرقام أو سلسلة وما إلى ذلك مفصولة بمسافات.
بعض أمثلة 'حلقة for' مذكورة أدناه لتوضيح كيفية عملها:
مثال أساسي 'للحلقة'.
سكريبت باش
#!/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.'
انتاج |
لحلقة لقراءة نطاق
سكريبت باش
#!/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' لتكرار قيم المصفوفة.
: في جافا
يمكن تعريف بناء الجملة على النحو التالي:
array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done
انتاج |
بالنسبة لكل عنصر في 'المصفوفة'، يتم تنفيذ العبارات أو مجموعة الأوامر من 'do' حتى 'done'. يمكن الوصول إلى كل عنصر كـ 'i' داخل الحلقة للتكرار المعني. راجع المثال أدناه الذي يشرح استخدام 'حلقة for' للتكرار على عناصر المصفوفة:
سكريبت باش
#!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done
انتاج |
بالنسبة إلى Loop لقراءة المسافات البيضاء في السلسلة كفواصل للكلمات
يمكن تعريف بناء الجملة على النحو التالي:
#!/bin/bash for word in $str; do done
هنا، شارع يشير إلى سلسلة.
يتم تنفيذ العبارات من 'do' حتى 'done' لكل 'كلمة' من السلسلة. تحقق من المثال أدناه:
سكريبت باش
#!/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
انتاج |
بالنسبة للحلقة لقراءة كل سطر في السلسلة ككلمة
يمكن تعريف بناء الجملة على النحو التالي:
#!/bin/bash for word in '$str'; do done
هنا، يتم تنفيذ العبارات من 'do' حتى 'done' لكل 'سطر' من السلسلة. تحقق من المثال أدناه:
صور تخفيض السعر
سكريبت باش
#!/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
انتاج |
ملاحظة: الفرق الوحيد بين 'For Loop لقراءة المسافات البيضاء في السلسلة كفواصل كلمات' و'For Loop لقراءة كل سطر في السلسلة ككلمة' هو علامات الاقتباس المزدوجة حول متغير السلسلة.
لحلقة قراءة ثلاثة تعبيرات
بناء جملة التعبيرات الثلاثة هو بناء الجملة الأكثر شيوعًا لـ 'for Loop'. يشير التعبير الأول إلى عملية التهيئة، ويشير التعبير الثاني إلى الإنهاء، ويشير التعبير الثالث إلى الزيادة أو النقصان.
راجع المثال أدناه لطباعة من 1 إلى 10 أرقام باستخدام ثلاثة تعبيرات مع حلقة for:
سكريبت باش
#!/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 التوقف عن تنفيذ هذا التكرار المحدد للحلقة ومعالجة التكرار التالي.
سكريبت باش
#!/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;>
انتاج |
خاتمة
في هذا الموضوع، ناقشنا كيفية استخدام عبارة for Loop في Bash لأداء مهام محددة
=20;>=10;>