وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش استفاده از آرایه های شاخص در Bash

0 3
زمان لازم برای مطالعه: 4 دقیقه


Bash از آرایه های نمایه شده پشتیبانی می کند، که اساساً لیستی از عناصری هستند که با استفاده از شماره فهرست آنها می توان به آنها دسترسی داشت. آرایه های نمایه شده به ویژه زمانی مفید هستند که می خواهید مقادیر مرتبط زیادی را ذخیره و دستکاری کنید، این مقاله را بیشتر بخوانید تا روش استفاده از آرایه های شاخص را بیاموزید.

آرایه های شاخص چیست؟

آرایه های نمایه شده مجموعه ای از عناصر در bash هستند که با استفاده از یک شاخص یا یک کلید قابل دسترسی هستند. از این آرایه ها می توان برای ذخیره و بازیابی داده ها به ترتیب خاصی استفاده کرد و مدیریت حجم زیادی از داده ها را آسان تر می کند. نحو برای اعلان یک آرایه نمایه شده در bash به شرح زیر است:

<آرایه_نام> =( عنصر1 عنصر2 عنصر3 … )

در اینجا array_name نام آرایه است و element1، element2، element3 و غیره روی مقادیری هستند که باید در آرایه ذخیره شوند. مقادیر با فضای خالی از هم جدا می شوند و توجه داشته باشید که می توانید از دستور declare نیز برای ایجاد یک آرایه استفاده کنید.

روش استفاده از آرایه های نمایه شده در Bash

برای ایجاد یک آرایه شاخص در bash، شما فقط باید یک متغیر را اعلام کنید و مقادیری را که در داخل پرانتز قرار گرفته و با فاصله از هم جدا شده اند به آن اختصاص دهید. در اینجا چند مثال وجود دارد که روش استفاده از آرایه های نمایه شده در bash را نشان می دهد:

ترتیب مجدد فهرست در Bash

اگر فهرستی از اقلام به ترتیب خاصی دارید و می خواهید آنها را به روشی دیگر سفارش دهید. می توانید از یک آرایه شاخص برای ایجاد یک سفارش جدید برای آیتم ها به شرح زیر استفاده کنید:

#!/bin/bash
موارد=(“انبه” “آناناس” “توت فرنگی” “گیلاس” “انگور”)
سفارش=(4 2 0 3 1)
برای من که در ${سفارش[@]}
انجام دادن

اکو ${اقلام[$i]}
انجام شده

در این مثال، آرایه ای به نام آیتم ها با پنج عنصر ایجاد می کنیم. همچنین یک آرایه شاخص به نام order ایجاد می کنیم که ترتیب جدیدی را برای آیتم ها مشخص می کند. سپس از طریق آرایه سفارش حلقه می زنیم و از هر مقدار به عنوان یک شاخص برای بازیابی آیتم مربوطه از آرایه آیتم ها و چاپ آن استفاده می کنیم.

پیشنهاد می‌کنیم بخوانید:  روش استفاده از دیکشنری ارزش کلیدی در Bash

روش استفاده از آرایه های شاخص در Bash

فیلتر کردن یک لیست در Bash

اگر لیستی از موارد دارید و می خواهید موارد خاصی را بر اساس فیلتر کنید روی یک شرط می توانید از یک آرایه شاخص برای پیگیری شاخص های مواردی که شرایط را برآورده می کنند استفاده کنید، به شرح زیر:

#!/bin/bash
موارد=(“انبه” “آناناس” “توت فرنگی” “گیلاس” “انگور”)
شاخص ها=()

برای من که در ${!اقلام[@]}
انجام دادن

اگر [[ ${items[$i]} == *“ر”* ]]

سپس

شاخص ها+=($i)

فی
انجام شده

برای من که در ${شاخص[@]}
انجام دادن

اکو ${اقلام[$i]}
انجام شده

در این مثال، آرایه ای به نام آیتم ها با پنج عنصر ایجاد می کنیم. همچنین یک آرایه شاخص خالی به نام اندیس ایجاد می کنیم. سپس در آرایه آیتم ها حلقه می زنیم و بررسی می کنیم که آیا هر آیتم حاوی حرف “r” است یا خیر. اگر این کار را کرد، شاخص آن را به آرایه اندیس ها اضافه می کنیم. در نهایت، از طریق آرایه شاخص ها حلقه می زنیم و از هر مقدار به عنوان شاخص برای بازیابی آیتم مربوطه از آرایه آیتم ها و چاپ آن استفاده می کنیم.

روش استفاده از آرایه های شاخص در Bashروش استفاده از آرایه های شاخص در Bash

شمارش رخدادها در Bash

اگر لیستی از آیتم ها دارید و می خواهید تعداد دفعات هر آیتم را بشمارید، می توانید از یک آرایه شاخص برای پیگیری تعداد استفاده کنید و در اینجا یک مثال برای نمایش آورده شده است:

#!/bin/bash
موارد=(“انبه” “آناناس” “توت فرنگی” “گیلاس” “انگور”)
شمارش می کند=()

برای من که در ${!اقلام[@]}
انجام دادن

اگر [[ ! ${counts[@]} =~ ${اقلام[$i]} ]]

سپس

شمارش +=(${اقلام[$i]} 1″)

دیگر

فهرست مطالب=$(اکو ${شمار می‌شود[@]} | tr “” ‘\n’ | grep -n “^${اقلام[$i]} | مس)

شمردن=$(اکو ${شمار می‌شود[$index-1]} | برش “” -f2)

شمارش می کند[$index1]=${اقلام[$i]} $((count+1))”

فی
انجام شده

برای شمردن که در ${شمار می‌شود[@]}
انجام دادن

اکو $count
انجام شده

ابتدا آرایه ای به نام “اقلام” را با لیستی از رشته ها مقداردهی اولیه می کند. سپس یک آرایه خالی به نام “counts” را اعلام می کند. یک حلقه for برای تکرار برای هر آیتم در آرایه “اقلام” ایجاد می شود و برای هر آیتم بررسی می کند که آیا از قبل در آرایه “counts” وجود دارد یا خیر.

پیشنهاد می‌کنیم بخوانید:  چرا باید bin/bash را در ابتدای یک فایل اسکریپت قرار دهید - bash

اگر وجود نداشته باشد، آیتم و تعداد 1 را به آرایه “counts” اضافه می کند. اگر وجود داشته باشد، تعداد آن آیتم را در آرایه “counts” افزایش می دهد. در نهایت برای چاپ هر آیتم و تعداد مربوط به آن از حلقه for دیگری استفاده می شود. خروجی این کد تعداد هر آیتم را در آرایه “اقلام” چاپ می کند و موارد تکراری جداگانه شمارش می شود.

روش استفاده از آرایه های شاخص در Bashروش استفاده از آرایه های شاخص در Bash

به روز رسانی یک لیست در Bash

اگر لیستی از آیتم ها دارید و می خواهید مواردی را از آن اضافه یا حذف کنید، می توانید از یک آرایه شاخص برای آن استفاده کنید و در اینجا یک مثال برای نمایش آورده شده است:

#!/bin/bash
موارد=(“انبه” “آناناس” “توت فرنگی” “گیلاس” “انگور”)

# افزودن یک عنصر جدید به آرایه نمایه شده در شاخص 2

موارد[6]=“نارنجی”
# حذف عنصر در شاخص 2 از آرایه نمایه شده
تنظیم نشده موارد[2]

# چاپ آرایه به روز شده
اکو ${اقلام[@]}

در اسکریپت یک آرایه نمایه شده “اقلام” با پنج عنصر اولیه تعریف شده است. برای افزودن یک عنصر جدید، مقدار به سادگی با استفاده از آرایه نحوی به شاخص مورد نظر اختصاص داده می شود[index]= ارزش در این اسکریپت، “نارنجی” به شاخص 6 آرایه اضافه می شود. برای حذف یک عنصر، از دستور unset و به دنبال آن شاخص عنصری که می خواهیم حذف کنیم استفاده می کنیم. در این حالت، عنصر موجود در شاخص 2 (“توت فرنگی”) حذف می شود. سپس آرایه به روز شده با استفاده از نحو “${array” چاپ می شود[@]}”، که کل آرایه را گسترش می دهد.

روش استفاده از آرایه های شاخص در Bashروش استفاده از آرایه های شاخص در Bash

نتیجه

آرایه های نمایه شده یک ساختار مفید از bash هستند که به شما امکان می دهند چندین مقدار را با استفاده از یک متغیر واحد ذخیره و دستکاری کنید. با درک نحو و استفاده از آرایه های نمایه شده، می توانید اسکریپت های bash کارآمدتر و موثرتری بنویسید.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-29 05:33:06

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید