ذكري المظهر

صفائف باش

تعبت من توضعي اهداف ومكتحققوش هادو اهم الخطوات باش تنجحي

تعبت من توضعي اهداف ومكتحققوش هادو اهم الخطوات باش تنجحي

جدول المحتويات:

Anonim

المصفوفات هي واحدة من هياكل البيانات الأكثر استخدامًا والأساسية. يمكنك التفكير في صفيف هو متغير يمكنه تخزين متغيرات متعددة داخلها.

، سنغطي صفائف Bash ، وسنشرح كيفية استخدامها في البرامج النصية Bash.

باش المصفوفات

يدعم Bash أنواع المصفوفات المفهرسة والأرقام الترابطية أحادية البعد. يتم الرجوع إلى المصفوفات العددية باستخدام الأعداد الصحيحة ، ويتم الرجوع إلى النقابي باستخدام السلاسل.

يمكن الوصول إلى المصفوفات المفهرسة عدديًا من النهاية باستخدام مؤشرات سالبة ، يشير مؤشر -1 إلى العنصر الأخير. لا يجب أن تكون المؤشرات متجاورة.

على عكس معظم لغات البرمجة ، لا يجب أن تكون عناصر صفيف Bash من نفس نوع البيانات. يمكنك إنشاء صفيف يحتوي على كل من السلاسل والأرقام.

لا يدعم Bash صفائف متعددة الأبعاد ، ولا يمكن أن يكون لديك عناصر صفيف أيضًا صفائف.

لا يوجد حد أقصى لعدد العناصر التي يمكن تخزينها في صفيف.

إنشاء صفائف باش

يمكن تهيئة المصفوفات في Bash بطرق مختلفة.

إنشاء المصفوفات المفهرسة رقميًا

متغيرات Bash غير نمطية ، يمكن استخدام أي متغير كصفيف مفهرس دون التصريح عنها.

لتصريح صفيف بشكل صريح ، استخدم التصريح المضمّن:

declare -a array_name

إحدى الطرق لإنشاء صفيف مفهرسة هي باستخدام النموذج التالي:

array_name=value_1 array_name=value_2 array_name=value_n

حيث index_* عدد صحيح موجب.

هناك طريقة أخرى لإنشاء صفيف رقمي وهي تحديد قائمة العناصر داخل الأقواس ، مفصولة بمسافة فارغة:

array_name=(element_1 element_2 element_N)

عند إنشاء المصفوفة باستخدام النموذج أعلاه ، تبدأ الفهرسة عند الصفر ، أي أن العنصر الأول يحتوي على فهرس يساوي 0 .

إنشاء صفائف الترابطية

بخلاف الفهرسة الرقمية ، يجب أن يتم الإعلان عن المصفوفات الترابطية قبل استخدامها.

للإعلان عن صفيف اقتران ، استخدم declare المضمّن مع الخيار -A (أحرف كبيرة):

declare -A array_name

يمكن إنشاء المصفوفات الترابطية باستخدام النموذج التالي:

declare -A array_name array_name=value_foo array_name=value_bar array_name=value_xyz

حيث index_* يمكن أن يكون أي سلسلة.

يمكنك أيضًا إنشاء مجموعة اقتران باستخدام النموذج أدناه:

declare -A array_name array_name=(=value_foo =value_bar =value_xyz)

عمليات صفيف

قد تبدو بناء جملة صفيف Bash غريبة بعض الشيء في البداية ، ولكن سيكون ذلك منطقيًا بمجرد قراءة هذه المقالة.

العناصر المرجعية

للإشارة إلى عنصر واحد ، تحتاج إلى معرفة فهرس العنصر.

يمكن الرجوع إلى أي عنصر باستخدام بناء الجملة التالي:

${array_name} يشبه بناء الجملة للوصول إلى عنصر الصفيف بناء جملة معظم لغات البرمجة. الأقواس المتعرجة ${} مطلوبة لتجنب عوامل تشغيل توسيع اسم ملف shell.

دعنا نطبع العنصر بفهرس 1 :

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print element echo ${my_array}

Helium

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${my_array}"

Hydrogen Helium Lithium Beryllium

الفرق الوحيد بين @ و * هو عندما يكون النموذج ${my_array} محاطًا بعلامات اقتباس مزدوجة. في هذه الحالة ، يتم توسيع * إلى كلمة واحدة حيث يتم فصل عناصر الصفيف بمسافة. @ يوسع كل عنصر صفيف إلى كلمة منفصلة. هذا مهم بشكل خاص عند استخدام النموذج لمحو الأمية من خلال عناصر الصفيف.

لطباعة مفاتيح مجموعة إضافة ! عامل التشغيل قبل اسم الصفيف:

${!array_name}

هنا مثال:

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${!my_array}"

0 1 2 3

طول الصفيف

للحصول على طول صفيف ، استخدم النموذج التالي:

${#array_name} بناء الجملة هو نفسه عند الإشارة إلى جميع العناصر مع إضافة الحرف # قبل اسم المصفوفة.

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## array Length echo ${#my_array}

4

حلقة من خلال مجموعة

الطريقة الأكثر شيوعًا للتكرار على كل عنصر في صفيف هي باستخدام حلقة for:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${my_array}" do echo "$i" done

سيتم تكرار الكود أعلاه عبر الصفيف وطباعة كل عنصر في سطر جديد:

Hydrogen Helium Lithium Beryllium

فيما يلي مثال عن كيفية طباعة جميع المفاتيح والقيم:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${!my_array}" do echo "$i" "${my_array}" done

0 Hydrogen 1 Helium 2 Lithium 3 Beryllium

هناك طريقة أخرى للتنقل عبر صفيف وهي الحصول على طول الصفيف واستخدام حلقة C style :

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") # Length of the array length=${#my_array} # Array Loop for ((i=0; i < ${length}; i++)) do echo $i ${my_array} done

0 Hydrogen 1 Helium 2 Lithium 3 Beryllium

إضافة عنصر جديد

لإضافة عنصر جديد إلى صفيف bash وتحديد فهرسه ، استخدم النموذج التالي:

my_array="New Element"

هنا مثال:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new element my_array="Aluminum" ## print all elements echo "${my_array}"

Hydrogen Helium Lithium Beryllium Aluminum

هناك طريقة أخرى لإضافة عنصر جديد إلى صفيف دون تحديد الفهرس باستخدام += العامل. يمكنك إضافة عنصر واحد أو عدة عناصر:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new elements my_array+=(Cobalt Nickel) ## print all elements echo "${my_array}"

Hydrogen Helium Lithium Beryllium Cobalt Nickel

حذف عنصر

لحذف عنصر واحد ، ستحتاج إلى معرفة فهرس العنصر. يمكن إزالة عنصر باستخدام أمر unset :

unset my_array

دعنا نرى مثالا:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## remove element unset my_array ## print all elements echo "${my_array}"

Hydrogen Helium Beryllium

استنتاج

لقد شرحنا كيفية إنشاء صفائف مفهرسة وعدديًا. لقد أظهرنا أيضًا كيفية التكرار من خلال المصفوفات ، وحساب طول المصفوفة ، وإضافة عناصر وإزالتها.

محطة باش