از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
آشنایی با آرایه های انجمنی در لینوکس Bash با مثال
سرفصلهای مطلب
آرایه های انجمنی یک نوع داده انتزاعی هستند که می توانند به عنوان فرهنگ لغت یا نقشه در نظر گرفته شوند. تفاوت آنها با آرایه های دیگر این است که آنها جفت های کلید-مقدار را نگه می دارند که در آن کلیدها می توانند رشته های دلخواه و تعریف شده توسط کاربر به جای اعداد شاخص معمولی باشند. آرایه های وابسته دو ویژگی اصلی دارند:
- هر کلید در آرایه فقط یک بار می تواند ظاهر شود. شما می توانید آن را به عنوان یک شناسه منحصر به فرد برای یک کاربر در یک لیست در نظر بگیرید.
- یک مقدار می تواند بیش از یک بار در یک آرایه ظاهر شود. به عنوان مثال، دو نفر در یک لیست می توانند نام یکسانی داشته باشند اما باید شناسه های کاربری متفاوتی داشته باشند.
در این مقاله روش تعریف و مقداردهی اولیه آرایه های انجمنی در لینوکس را توضیح خواهیم داد bash. بیشتر توضیح خواهیم داد روی قدرت آرایه های انجمنی با کمک مثال های مختلف.
ما نمونه های ذکر شده در این مقاله را اجرا کرده ایم روی یک سیستم Debian 10 Buster. با این حال، شما به راحتی می توانید تکرار کنید روی تقریبا تمام توزیع های لینوکس.
بررسی پیش نیازها
برای استفاده از آرایه های انجمنی روی لینوکس Bash، شما GNU نسخه Bash باید برابر یا بالاتر از نسخه 4 باشد. ترمینال لینوکس خود را با دسترسی به آن از طریق جستجوی Application Launcher باز کنید. سپس دستور زیر را وارد کنید تا نسخه نصب شده خود را بررسی کنید bash:
در حال حاضر من bash نسخه 5.0.3 است، بنابراین من آماده هستم. در مورد شما bash نسخه کمتر از 4 است، می توانید ارتقا دهید bash با اجرای دستور زیر به صورت sudo:
اعلان یک آرایه انجمنی و راه اندازی آن
اعلان یک آرایه Associative بسیار ساده است bash و از طریق دستور declare قابل انجام است:
در مثال ما، یک متغیر آرایه به نام sampleArray1 را به صورت زیر اعلام می کنیم:
مرحله بعدی این است که مقادیر مورد نیاز برای آرایه خود را مقداردهی اولیه کنید. در مثال ما، میخواهیم آرایهای داشته باشیم که در آن مقادیر نام چند کشور و کلیدها اختصارات نام کشور مربوطه آنها باشد. در اینجا مقادیر آرایه را یکی یکی به صورت زیر تغذیه می کنیم:
مثال:
$ sampleArray1[JPN]=ژاپن
$ sampleArray1[KOR]= کره
$ sampleArray1[TWN]=تایوان
$ sampleArray1[TH]= تایلند
یک جایگزین سریع، اعلام و مقداردهی اولیه یک آرایه در یک واحد است bash دستور به صورت زیر
در اینجا چگونه می توانیم آرایه ذکر شده خود را به صورت متناوب اعلام و مقداردهی اولیه کنیم:
[TH]= تایلند )
اکنون نمونه هایی را ارائه می کنیم که به تفصیل توضیح داده می شود روی آنچه می توانید با آرایه های Associative انجام دهید bash:
مثال 1: دسترسی به کلیدها و مقادیر آرایه
در این مثال توضیح خواهیم داد که چگونه می توانید:
- یک مقدار در مقابل یک کلید چاپ کنید
- همه کلیدهای آرایه را یکجا چاپ کنید
- همه مقادیر آرایه را یکجا چاپ کنید
و،
- همه جفتهای کلید-مقدار را همزمان چاپ کنید
چاپ
تو می توانی print یک مقدار در برابر یک کلید با استفاده از دستور دستور زیر:
در اینجا روش دسترسی به نام کامل یک کشور با ارائه مخفف نام کشور، از نمونه آرایه1 آمده است:
$ echo ${sampleArray1[TWN]}
اگر علاقه مند هستید چاپ تمام کلیدها از آرایه انجمنی خود، می توانید این کار را با استفاده از نحو زیر انجام دهید:
دستور زیر خواهد بود print تمام اختصارات نام کشور از sampleArray1 من توسط
استفاده از حلقه for:
جایگزین دیگری برای چاپ همه کلیدها از آرایه استفاده از بسط پارامتر است. دستور زیر خواهد بود print همه کلیدها در یک خط:
اگر علاقه مند هستید چاپ همه مقادیر آرایه به یکباره، می توانید با استفاده از حلقه for به صورت زیر این کار را انجام دهید:
دستور زیر خواهد بود print تمام نام های کشوری که در نمونه آرای1 من ذخیره شده اند:
جایگزین دیگری برای چاپ همه مقادیر از آرایه، استفاده از بسط پارامتر است. دستور زیر خواهد بود print همه مقادیر در یک خط:
مثال مفید بعدی خواهد بود print همه جفت های کلید-مقدار یکباره با استفاده از حلقه for به صورت زیر:
${sampleArray1[$key]}“; انجام شده
البته میتوانید این بازیابی اطلاعات را در پیچیدهتر و معنادارتر کنید bash اسکریپت ها
مثال 2: شمارش آیتم های آرایه
برای شمارش و می توان از دستور زیر استفاده کرد print تعداد عناصر در آرایه انجمنی شما:
خروجی دستور زیر نشان می دهد که من پنج آیتم در sampleArray1 خود دارم:
مثال 3: افزودن داده های جدید در Array
اگر میخواهید پس از اعلام و مقداردهی اولیه یک مورد به آرایهای اضافه کنید، این نحوی است که میتوانید دنبال کنید:
در مثالم، من میخواهم کشور دیگری را به همراه نام اختصاری آن استان اضافه کنم، بنابراین از دستور زیر استفاده میکنم:
تکرار مقادیر آرایه اکنون نشان می دهد که کشور جدید به آرایه من اضافه شده است:
مثال 4: حذف آیتم از آرایه
با حذف یک ورودی از آرایه انجمنی، می توانید آن را به عنوان یک آیتم آرایه حذف کنید. این همان نحو تنظیم نشده ای است که می توانید برای انجام این کار از آن استفاده کنید:
در مثالم، من میخواهم جفت کلید-مقدار “AL-Alabama” را از آرایه خود حذف کنم، بنابراین کلید “AL” را در دستور خود تنظیم نمیکنم:
تکرار مقادیر آرایه اکنون نشان می دهد که مقدار کلید AL-Alabama اکنون از آرایه من حذف شده است:
مثال 5: بررسی وجود آیتم در آرایه
با استفاده از شرط if به روش زیر، می توانید بررسی کنید که آیا یک مورد در آرایه انجمنی شما موجود است یا اکنون:
به عنوان مثال، اگر بررسی کنم که آیا مورد اخیراً حذف شده AL-Alabama در آرایه من وجود دارد، پیام زیر چاپ خواهد شد:
اگر موردی را که وجود دارد بررسی کنم، نتیجه زیر چاپ خواهد شد:
مثال 6: حذف یک آرایه
می توانید یک آرایه Associative را از خود حذف کنید bash حافظه را با استفاده از دستور unset به شرح زیر انجام دهید:
با استفاده از دستور ساده زیر نمونه Array1 خود را از حافظه حذف خواهم کرد:
حالا وقتی سعی می کنم print تمام مقادیر آرایه را از طریق دستور زیر دریافت نمی کنم.
با استفاده از این مثال ها در لینوکس خود bash اسکریپت ها، می توانید از قدرت آرایه های انجمنی برای دستیابی به راه حلی برای بسیاری از مشکلات پیچیده استفاده کنید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 13:32:03