از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش شبیه سازی آرایه ای از آرایه ها در Bash
سرفصلهای مطلب
مثال 01: استفاده از حلقه های ساده “For”.
نمونه ای از شبیه سازی آرایه ای از آرایه ها با استفاده از روش ساده داریم. بیایید شروع به نشان دادن روش بارگیری یک جدول mxn تعریف شده توسط کاربر با اعداد تصادفی کنیم (که تصادفی نیستند، زیرا هر ستون همیشه در هر اجرا دارای یک عدد مشابه است. روی بسیاری از ردیف های آن، اما این در مورد سوال صدق نمی کند)، و print آی تی. وقتی کار می کنیم روی یا الف bash که داری، bash نسخه 4، اسکریپت زیر مطمئناً کارآمد خواهد بود. ما نباید انفرادی 0 را اعلام کنیم. که بیشتر شبیه یک راه حل عالی برای ارزش هایی است که به شدت پذیرفته می شوند. ما یک آرایه با کلمه کلیدی “-A” اعلام کرده ایم. اگر آرایه انجمنی را با استفاده از -A تعریف نکنیم، ممکن است کد برای ما کار نکند. سپس از کلمه کلیدی read برای خواندن ورودی کاربر استفاده می شود که سطرها و ستون های یک جدول است. سپس از دو حلقه for برای افزایش سطرها و ستون های جدول استفاده کرده ایم. در حلقه for، ما در حال ساخت یک آرایه دو بعدی هستیم. در حلقه for بعدی، تمام مقادیر یک آرایه نمایش داده شده است.
هنگامی که شما اجرا می کنید bash فایل، از کاربر می خواهد که ردیف ها و ستون ها را به صورت “m” و “n” وارد کند. پس از آن، حلقههای for یک جدول دو بعدی مانند زیر ایجاد میکند.
مثال 02: استفاده از هش
با در نظر گرفتن همین مثال، میتوانیم آرایهها را با استفاده از هشها شبیهسازی کنیم. با این حال، ما باید مراقب صفرهای پیشرو و چندین مورد دیگر باشیم. توضیح بعدی کار می کند. با این حال، راه خروج بسیار دور از ایده آل است. ما سطرها و ستون ها را به صورت دستی گرفته ایم. حلقه for برای ساخت ماتریس استفاده می شود. سپس ما از هش برای شبیه سازی آرایه دو بعدی استفاده کرده ایم. در نهایت، آرایه به صورت زیر چاپ می شود.
فایل “input.sh” را در قسمت اجرا کنید bash پوسته با استفاده از bash فرمان جدولی را خواهید دید که تعداد ردیف ها و ستون ها ذکر شده است.
مثال 03: استفاده از آرایه های انجمنی
بیایید مثالی از شبیهسازی با استفاده از آرایههای انجمنی که بهعنوان آرایهای از آرایهها در زیر استفاده میشود، داشته باشیم. پس از اعلان آرایه انجمنی، مقادیری را برای آرایه ها به صورت جداگانه تعریف کرده ایم. پس از آن، ما به آن رسیده ایم print مقادیر را به صورت دو بعدی بیان کنید.
هنگام اجرای فایل می توانید خروجی را به صورت یک آرایه دو بعدی ببینید. اگر خط “declare -A arr” را نادیده بگیریم، the echo ممکن است عبارت (2 3) به جای (0 1)، از (0.0)، (1.0) نمایش داده شود و برخی دیگر ممکن است به عنوان یک عبارت ریاضی استفاده شده باشند و 0 محاسبه شده باشند (مقدار سمت راست یک کاما).
مثال 04: استفاده از Name-references
که در bash، این یک مشکل مکرر با ارجاع آرایه ها در داخل آرایه ها است که باید با استفاده از declare -n، نام-ارجاعات را بسازید. آن نام پس از آن -n به عنوان یک نام ref برای مقدار تخصیص داده شده (after =) عمل می کند. در حال حاضر، ما این متغیر را فقط با نام ویژگی ref کنترل میکنیم تا گویی یک آرایه باشد و آرایه ذکر شده مناسب را مانند قبل گسترش دهیم. بیایید یک مثال از refs نام داشته باشیم. ما دو آرایه را با موفقیت اعلام کردیم. پس از آن، هر دو آرایه را به عنوان عضو به آرایه دیگری اختصاص داده ایم. ما از حلقه برای ایجاد یک آرایه دو بعدی استفاده کرده ایم. ما متغیر دیگری ایجاد کرده ایم تا مقادیر یک به یک آرایه “گروه” را برای مقایسه به آن اضافه کنیم. در اعماق، به اعضای آرایه های داخلی “bar” و “foo” می رود تا هنگام چاپ پیام، مقادیر را بگیرد و آنها را مقایسه کند.
زمانی که فایل “input.sh” را اجرا می کنیم، خروجی زیر را مشاهده خواهید کرد. متغیر “lst” دارای مقادیر آرایه های داخلی در آرایه “گروه ها” است.
مثال 05: استفاده از کلیدواژه Cut
فقط الان بهش برخورد کردم یک رویکرد نسبتاً ساده وجود داشت که برای همه کار می کرد. برای نشان دادن یک نقشه اصلی برای سیستم، تصمیم گرفتم از آرایهای حاوی نام دستگاه و مکان صفحه استفاده کنم. ما باید عنوان واحد و مکان مربوط به یک نمایشگر را با استفاده از تنها با استفاده از یک جداکننده به یک رشته واحد متصل کنیم، که فرض کردیم در هیچ یک از مقادیر ما رخ نخواهد داد (در مورد من، من از . استفاده کردم). و من از یک کلمه کلیدی “برش” برای تقسیم مقادیر مشخص به اجزای آنها در صورت لزوم استفاده کردم. اگرچه ممکن است یک رویکرد واضح تر و آسان تر برای انجام آن وجود داشته باشد، و این فقط برای نشان دادن این موضوع است که به یک معنا، در bash، می توانیم یک آرایه چند بعدی بسازیم، اگرچه کمکی به آن نمی کند. پس از آن، شما باید print نام دستگاه و مکان آن به طور جداگانه پس از ایجاد رشته فرعی.
بیایید اجرا کنیم bash فایل “input.sh”. دستگاه جدا شده و مکان آن را در اعلان پوسته در حین اجرا خواهید دید. راه حل با استفاده از دستور cut کار می کند.
مثال 06
برای تقلید از یک آرایه چند بعدی مثالی کمی طولانی تر می زنیم. در تابع load_alpha() تمام حروف الفبا در آرایه بارگذاری می شوند. پس از آن، تابع print_Alpha() اعلام شده و استفاده می شود print تمام حروف الفبا را به ترتیب ردیف اصلی به صورت ماتریس یا قالب دو بعدی قرار دهید. از طرف دیگر، ما از تابع rotate() برای چرخاندن آرایه استفاده کرده ایم. بیایید این مثال را در bash پوسته برای دیدن نتایج.
در حین اجرا، ساختار بسیار زیبایی از آرایه چند بعدی را در آن پیدا کردیم bash پوسته مانند زیر
نتیجه
ما نمونه هایی را برای شبیه سازی آرایه های آرایه در با موفقیت امتحان کرده ایم bash. امیدوارم کار کند!
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 04:23:03