بسم الله الرحمن الرحيم
ستتعلم في هذا الموضوع كيفية التصريح و التعامل مع المصفوفات في لغة باش سكريبت في نظام التشغيل لينكس بأمثلة :
1 . التصريح عن مصفوفة :
يتم إنشاء مصفوفة عند تصريح عن متغير بهذه الصيغة :
name[index]=value
- name : أسم المتغير .
- index : قيمة الفهرس .
- value : قيمة المتغير .
و هذا مثال عن أستخدام المصفوفات في هذا السكريبت:
#!/bin/bash
name[1]="mohmmed"
name[2]="salem"
name[3]="abdullah"
echo ${name[2]} #Print the value number 2
name[1]="mohmmed"
name[2]="salem"
name[3]="abdullah"
echo ${name[2]} #Print the value number 2
2 . التصريح عن المصفوفة و تعيين جيمع قيمها في سطر واحد :
تستطيع التصريح عن مصفوفة و تعيين جيمع قيمها بواسطة الأمر declare كهذا المثال :
#!/bin/bash
declare -a name=("mohmmed" "salem" "abdullah")
echo ${name[2]}
3 . طباعة جميع عناصر المصفوفة :
لطباعة جميع عناصر المصفوفة تستطيع أستخدام الحرف @ كقيمة للفهرس كهذا المثال :
#!/bin/bash
declare -a name=("mohmmed" "salem" "abdullah")
echo ${name[@]}
4 . طباعة طول المصفوفة :
لطباعة عدد عناصر المصفوفة تستطيع أستخدام الحرف "#" و "@" كهذا المثال :
#!/bin/bash
declare -a name=("mohmmed" "salem" "abdullah")
echo ${#name[@]}
و لعرض طول عنصر في المصفوفة كالتالي بأستخدام الحرف "#" و رقم الفهرس الخاص بالعنصر :
#!/bin/bash
declare -a name=("mohmmed" "salem" "abdullah")
echo ${#name[1]}
5 . الحصول على عدد من العناصر بواسطة البعد :
تستطيع أستخدام بأستخدام ترقيم العناصر طباعة العناصر المختارة كهذا المثال :
#!/bin/bash
declare -a name=("mohmmed" "salem" "abdullah")
echo ${name[@]:1:2}
سيتم طباعة العنصرين رقم 1 و 2 (تذكر أن ترقيم العناصر يبدأ من الصفر ).
6 . الحصول على جزء من العنصر :
للحصول على جزء من العنصر كهذا المثال :
#!/bin/bash
declare -a name=("mohmmed" "salem" "abdullah")
echo ${name[1]:1:2}
ستيم طباعة الحروف "al" فقط من العنصر 1 .
7. البحث و الأستبدال في المصفوفة :
للبحث عن قيمة في المصفوفة و أستبدالها تستطيع أستخدام الطريقة التالية :
#!/bin/bash
declare -a name=("mohmmed" "salem" "abdullah")
echo ${name[1]/salem/ahmed}
استخدمنا "salem/ahmed/" حيث أبتدئنا بالقيمة التي نريد تغيرها ثم القيمة الجديدة .
8. أضافة عنصر لمصفوفة موجودة :
#!/bin/bash
declare -a name=("mohmmed" "salem" "abdullah")
name=("${name[@]}" "Ahmed") #هذا السطر سيضيف قيمة جديد للمصفوفة
name=("${name[@]}" "Ahmed") #هذا السطر سيضيف قيمة جديد للمصفوفة
echo ${name[3]}
لأضافة قيمة جديدة للمصفوفة تستطيع أستخدام الطريقة الموجودة في السطر الثالث في المثال .
9. حذف عنصر من المصفوفة:
لحذف عنصر تستطيع أستخدام الأمر unset كالتالي :
#!/bin/bash
declare -a name=("mohmmed" "salem" "abdullah")
unset name[1]
سيتم حذف العنصر رقم 1 من المصفوفة .
10 . البحث عن عنصر بواسطة القيمة و حذفه :
#!/bin/bash
declare -a name=("mohmmed" "salem" "abdullah")
echo ${#name[1]/salem*/}
في السطر الثالث سيتم حذف القيمة التي تبدأ بـ"salem" أو تساويها من المصفوفة بسبب وجود النجمة في نهاية القيمة في المثال ,طبعا للحفظ الناتج يجب أتباع الخطوات في التالي بأستخدام الأمر declare :
#!/bin/bash
declare -a name=("mohmmed" "salem" "abdullah")
declare -a name2=(${name[1]/salem*/})
11 . حذف مصفوفة كاملة :
لحذف مصفوفة بكملها تستطيع أستخدام الأمر unset كالتالي :
#!/bin/bash
declare -a name=("mohmmed" "salem" "abdullah")
unset name
12 . أستخدام الحلقة التكرارية for للتعامل مع المصفوفات :
تستطيع أستخدام الحلقة التكرارية for للوصول لعناصر المصفوفة كهذا المثال :
#!/bin/bash
declare -a name=("mohmmed" "salem" "abdullah")
for i in ${name[@]}
do
echo $i > filetxt.txt
done
declare -a name=("mohmmed" "salem" "abdullah")
for i in ${name[@]}
do
echo $i > filetxt.txt
done
في هذا المثال سيتم حفظ قيم المصفوفة في الملف filetxt.txt .
هذا نهاية هذا المقال و أذا كان لديك أخي القارىء أي أضافة أو تعديل أو سؤال فلا تتردد شاركنا .