باش لوب من خلال قائمة سلاسل

Bash Loop Through List Strings



يمكن تكرار قائمة سلاسل أو مصفوفة أو تسلسل من العناصر باستخدام ل حلقة في باش. كيف يمكنك تكرار قائمة السلاسل في Bash by for loop موضحة في هذا البرنامج التعليمي باستخدام أمثلة نصوص bash المختلفة. إذا كنت مبتدئًا في برمجة bash ، فيمكنك قراءة البرنامج التعليمي على أمثلة BASH للحصول على حلقة قبل بدء هذا البرنامج التعليمي.

أنشئ ملف bash باسم ' for_list1.sh وأضف النص التالي. يتم استخدام قيمة سلسلة مع مسافات داخل حلقة for. بشكل افتراضي ، يتم فصل قيمة السلسلة بمسافة. حلقة For ستقسم السلسلة إلى كلمات وستطبع كل كلمة بإضافة سطر جديد.







#!/bin/bash
# اقرأ سلسلة بها مسافات باستخدام حلقة for
لالقيمةفيأنا أحب البرمجة
فعل
رما - طرد - قذف قيمة دولار
انتهى

انتاج:



$سحقfor_list1.sh



مثال 2: تكرار متغير سلسلة باستخدام حلقة for

أنشئ ملف bash باسم ' for_list2.sh وأضف النص التالي. تعيين نص في المتغير ، StringVal واقرأ قيمة هذا المتغير باستخدام حلقة for. سيعمل هذا المثال أيضًا مثل المثال السابق ويقسم قيمة المتغير إلى كلمات بناءً على المساحة.





#!/bin/bash
# تحديد متغير سلسلة ذات قيمة
StringVal='مرحبًا بكم في linuxhint'

# كرر متغير السلسلة باستخدام حلقة for
لساعةفي $ StringVal؛فعل
رما - طرد - قذف ساعات
انتهى

انتاج:

$سحقfor_list2.sh



مثال 3: كرر مصفوفة من قيم السلسلة

أنشئ ملف bash باسم ' for_list3.sh وأضف النص التالي. تم التصريح عن مصفوفة من قيم السلسلة بالنوع في هذا البرنامج النصي. قيمتان في المصفوفة تحتويان على مسافة هما لينكس النعناع و ريد هات لينكس . سينشئ هذا البرنامج النصي الإخراج عن طريق تقسيم هذه القيم إلى كلمات متعددة والطباعة كقيمة منفصلة. لكن هذا ليس الناتج الصحيح. يظهر حل هذا النوع من المشاكل في المثال التالي.

#!/bin/bash

# قم بتعريف مصفوفة سلسلة من النوع
يعلن -إلى StringArray=('لينكس النعناع' 'فيدورا' 'ريد هات لينكس' 'أوبونتو' 'ديبيان' )

# كرر مصفوفة السلسلة باستخدام حلقة for
لساعةفي $ {StringArray [@]}؛فعل
رما - طرد - قذف ساعات
انتهى

انتاج:

$سحقfor_list3.sh

مثال 4: طباعة قيمة سلسلة كلمات متعددة كقيمة واحدة

أنشئ ملف bash باسم ' for_list4.sh وأضف النص التالي. في هذا المثال ، كل عنصر من متغير المصفوفة ، StringArray يحتوي على قيم من كلمتين. لطباعة كل قيمة دون تقسيم وحل مشكلة المثال السابق ، تحتاج فقط إلى إرفاق متغير الصفيف بـ اقتباس مزدوج داخل الحلقة.

#!/bin/bash

# قم بتعريف مصفوفة سلسلة من النوع
يعلن -إلى StringArray=('ويندوز إكس بي' نظام التشغيل Windows 10 'Windows ME' 'نظام التشغيل Windows 8.1'
'Windows Server 2016' )

# اقرأ قيم الصفيف مع الفراغ
لساعةفي '$ {StringArray [@]}'؛فعل
رما - طرد - قذف ساعات
انتهى

انتاج:

$سحقfor_list4.sh

مثال 5: تكرار قيم سلسلة لمصفوفة باستخدام '*'

أنشئ ملف bash باسم ' for_list5.sh مع الكود التالي. هنا ، يتم استخدام الرمز '*' لقراءة جميع قيم سلسلة المصفوفة. تُستخدم الحلقة for الأولى لعرض قيم الصفيف في أسطر متعددة ، بينما تُستخدم الحلقة for الثانية لعرض قيم الصفيف في سطر واحد.

#!/bin/bash

#Declare سلسلة سلسلة
اللغة=('بي أتش بي' 'جافا' 'C #' 'C ++' 'VB.Net' 'بايثون' 'بيرل')

# طباعة قيم المصفوفة في سطور
رما - طرد - قذف 'طباعة كل عنصر في سطر جديد'
لval1في $ {LanguageArray [*]}؛فعل
رما - طرد - قذف val1 دولار
انتهى

رما - طرد - قذف '

# طباعة قيم المصفوفة في سطر واحد
رما - طرد - قذف 'طباعة جميع العناصر في سطر واحد'
لval2في '$ {LanguageArray [*]}'؛فعل
رما - طرد - قذف val2 دولار
انتهى
رما - طرد - قذف '

انتاج:

$سحقfor_list5.sh

مثال 6: تكرار قيم السلاسل المفصولة بفاصلة

أنشئ ملف bash جديدًا باسم ' for_list6.sh ' مع الكود التالي. هنا، فاصلة (،) يستخدم لتقسيم قيم السلسلة. IFS متغير يستخدم لتعيين فاصل المجال.

#!/bin/bash
قائمة البيانات='HTML5، CCS3، BootStrap، JQuery'
فاصل_المجال=IFS دولار

# تعيين الفاصلة كفاصل حقل داخلي لقائمة السلسلة
IFS= ،
لساعةفي $ DataList؛
فعل
رما - طرد - قذف ساعات
انتهى

IFS=$ Field_Separator

انتاج:

$سحقfor_list6.sh

مثال 7: قراءة مصفوفات سلاسل متعددة معًا

أنشئ ملف bash باسم ' for_list7.sh وأضف النص التالي. في هذا المثال ، يتم تعريف صفيفتي سلسلة ودمجهما في مصفوفة أخرى. يتم استخدام حلقة for الخارجية لقراءة المصفوفة المدمجة وتستخدم حلقة for الداخلية لقراءة كل مصفوفة داخلية.

#! / بن / ش
str_array1=(ماجنتو 2.2.4 'WooCommerce')
str_array2=('CodeIgnitor' 'Laravel')
يجمع=(str_array1 str_array2)
لتمكنتفي $ {Combined [@]}
فعل
EVAL 'لـ val in' $ {'$ arrItem'[@]}' ؛ نفذ صدى '$ val' ؛ تم '
انتهى

انتاج:

$سحقfor_list7.sh

مثال 8: استخدام النمط لقراءة قائمة السلاسل النصية

قم بإنشاء ملف bash جديد باسم for_list8.sh مع الكود التالي. هنا، '/، /' يستخدم النمط لتقسيم قيم السلسلة على أساس الفاصلة.

#! / بن / ش

# تحديد قائمة متغير سلسلة
سلسلة= WordPress و Joomla و Magento

# استخدم الفاصلة كفاصل وطبق كنمط
لساعةفي $ {stringList // ، /}
فعل
رما - طرد - قذف ساعات
انتهى

انتاج:

$سحقfor_list8.sh

نأمل أن تساعدك أمثلة هذا البرنامج التعليمي على فهم استخدام لحلقة لتكرار قائمة السلاسل ، للحصول على مقطع فيديو حول هذا الموضوع ، انظر أدناه: