از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از آرایه های Bash
سرفصلهای مطلب
Bash بهترین انتخاب برای اتوماسیون برای کاربران لینوکس است. از آنجایی که اتوماسیون اغلب با هزاران عنصر سروکار دارد، دانستن اینکه آرایه bash چیست، ضروری است.
با آرایه های bash، مدیریت VPS یا سرورهای فیزیکی بسیار آسان تر است. این آموزش انواع مختلف آرایه های bash را به شما نشان می دهد و نمونه های مفیدی را ارائه می دهد.
آرایه Bash چیست؟
آرایه bash یک ساختار داده ای است که برای ذخیره اطلاعات به صورت نمایه شده طراحی شده است. به عبارت دیگر، آرایه bash گروه بزرگی از متغیرها است. برخلاف آرایههای معمولی که در سایر زبانهای برنامهنویسی استفاده میشوند، آرایههای bash میتوانند انواع مختلفی از عناصر را ذخیره کنند. به عنوان مثال، می توانید از یک آرایه bash برای ذخیره رشته ها و اعداد استفاده کنید.
دو نوع آرایه bash وجود دارد:
- نمایه شده است – آرایه از طریق اعداد صحیح یا اعداد ارجاع داده می شود.
- انجمنی – آرایه از طریق رشته ها یا مجموعه ای از کاراکترها و کلمات ارجاع داده می شود.
به یاد داشته باشید که bash از آرایه های چند بعدی پشتیبانی نمی کند، بنابراین اضافه کردن آرایه در یک آرایه ممکن نیست.
روش اعلان آرایه در Bash
چند راه برای اعلام آرایه های نمایه شده و انجمنی در bash وجود دارد. شایان ذکر است که اندازه آرایه bash نیازی به اعلام قبلی ندارد زیرا آرایه های bash محدودیت بالایی ندارند. روی تعداد عناصری که می توانند ذخیره کنند.
آرایه نمایه شده
ما با یک آرایه نمایه شده bash ساده شروع خواهیم کرد. به عنوان مثال، ما از آن برای ایجاد لیستی از وسایل حمل و نقل مختلف استفاده خواهیم کرد.
اولین گزینه این است که یک آرایه را با استفاده از پوسته داخلی اعلام کنید اعلام با -آ پرچم گذاری کنید و به آرایه عناصر آن را بدهید:
declare -a IndexedArray IndexedArray[0]=car IndexedArray[1]=plane IndexedArray[2]=bike
همین امر بدون اعلام ساخته شده:
IndexedArray[0]=car IndexedArray[1]=plane IndexedArray[2]=bike
یا با رفتن به موارد زیر آن را ساده تر کنید:
IndexedArray=(car plane bike)
به یاد داشته باشید که نمایه سازی در شروع می شود 0، بنابراین مثال بالا به را اختصاص می دهد ماشین عنصر آرایه به 0 فهرست مطالب.
با این حال، گزینه ای برای تنظیم یک آرایه با شاخص ها وجود دارد:
IndexedArray=([0]=’car’ [1]=’plane’ [2]=’bike’)
یکی از ویژگی های جالب آرایه های bash این است که دنبال کردن اعداد فهرست به ترتیب ضروری نیست. به عنوان مثال، شما می توانید تنها عناصر اول و سوم را اعلام کنید در حالی که عنصر دوم یک آرایه را خالی بگذارید:
IndexedArray[0]=car IndexedArray[2]=bike
آرایه انجمنی
در حالی که آرایه های نمایه شده به این نیاز ندارند اعلام در داخل، ایجاد یک آرایه bash انجمنی بدون اعلام اولیه آن امکان پذیر نخواهد بود:
declare -A AssociativeArray
بعد، مقادیر را اضافه کنید. به خاطر داشته باشید که کلید باید یک رشته باشد:
AssociativeArray[color]=blue AssociativeArray[type]=car AssociativeArray[topspeed]=200
یک راه جایگزین خواهد بود:
declare -A AssociativeArray=( [color]=blue [type]=car [topspeed]=200 )
چگونه یک متغیر به آرایه Bash اضافه کنیم
به راحتی متغیرهای bash را با استفاده از += اپراتور. به عنوان مثال process برای یک آرایه نمایه شده به شکل زیر است:
IndexedArray=(car plane bike) IndexedArray+=(motorcycle)
آرایه نمایه شده اکنون یک عنصر جدید دارد. به یاد داشته باشید که این روش به انتهای یک آرایه اضافه می شود. بنابراین، موتورسیکلت عنصر به عنوان آخرین عنصر اضافه خواهد شد.
برای آرایه های انجمنی، process بسیار شبیه است به جز، شما باید کلیدها را به همراه تمام عناصر مشخص کنید:
declare -A AssociativeArray AssociativeArray[color]=blue AssociativeArray+=([tires]=alloy [engine]=gasoline)
روش ارجاع و چاپ یک عنصر آرایه
کاربران می توانند مقادیر آرایه bash را با استفاده از شاخص یا کلید عنصر ارجاع دهند. برای انجام این کار، یک آرایه ایندکس شده ایجاد کنید:
IndexedArray=(car plane bike)
برای ارجاع به اولین متغیر آرایه، از نحو زیر استفاده کنید:
${IndexedArray[0]}
آن را با آن ترکیب کنید اکو، و موارد زیر را دریافت خواهید کرد:
echo ${IndexedArray[0]}
خروجی اولین عنصر را به شما نشان می دهد. در این مورد، آن است ماشین. همین منطق در هنگام ارجاع و چاپ یک آرایه انجمنی اعمال می شود:
declare -A AssociativeArray=( [color]=blue [type]=car [topspeed]=200 ) echo ${AssociativeArray[type]}
خروجی خواهد بود ماشین همچنین.
برای چاپ کل آرایه، استفاده کنید @ به عنوان یک شاخص اسکریپت کامل به این صورت است:
همچنین می توانید به جای آن کلیدهای یک آرایه را چاپ کنید. برای انجام این کار، قبل از نام آرایه یک علامت تعجب اضافه کنید:
چگونه عناصر آرایه Bash را حذف کنیم
حذف عناصر آرایه مشابه ارجاع به آنهاست. از یک شاخص یا یک کلید ترکیب شده با تنظیم نشده داخلی برای حذف یک عنصر آرایه.
در اینجا مثالی از حذف یک عنصر از یک آرایه نمایه شده آورده شده است:
منطق مشابهی برای آرایه های انجمنی اعمال می شود:
برای حذف کل یک آرایه، مشخص کنید تنظیم نشده با نام آرایه همانطور که در اینجا نشان داده شده است:
پس از تلاش برای چاپ عناصر آرایه چیزی نشان داده نمی شود زیرا تنظیم نشده ساخته شده آنها را حذف کرد.
روش حلقه زدن از طریق یک آرایه
ایجاد حلقه های bash یکی از جنبه های اساسی یادگیری اصول برنامه نویسی bash است. می توانید از حلقه ها با آرایه ها نیز استفاده کنید. به عنوان مثال، رایج ترین مورد استفاده، تکرار روی هر آیتم آرایه است:
همچنین می توانید کلیدها را با عناصر آرایه ترکیب کرده و همه آنها را با هم چاپ کنید:
روش ارسال یک آرایه به یک تابع
توابع در زمان اسکریپت نویسی به میزان قابل توجهی در زمان صرفه جویی می کنند. به جای نوشتن مکرر همان کد، می توانید یک تابع از قبل نوشته شده را فراخوانی کنید. ما حلقه تکرار ذکر شده قبلی را ترکیب می کنیم و یک تابع از آن می سازیم:
function Iteration { m=${#IndexedArray[@]} for (( i=0; i<m; i++ )) do echo ${IndexedArray[$i]} done } IndexedArray=(car bike plane) Iteration ${IndexedArray[@]}
اجرا کردنش روی خط فرمان نتیجه زیر را به شما می دهد:
نتیجه
Bash یکی از محبوب ترین پوسته ها و زبان های دستوری برای سرورهای مجازی و همچنین سرورهای فیزیکی مبتنی بر لینوکس است. با استفاده از برنامهنویسی و آرایههای bash، کاربران میتوانند کار خود را خودکار کرده و صدها ساعت را در انجام دستی کارها صرفهجویی کنند.
در این آموزش، اکثر عملیات آرایه را پوشش داده ایم:
- اعلان و ایجاد آرایه های نمایه شده و انجمنی.
- افزودن و حذف متغیرها از آرایه ها
- ارجاع و چاپ آرایه ها.
- حلقه زدن از میان آرایه ها و ارسال آنها به توابع.
ما همچنین چند نمونه ارائه کردیم که میتوانید هنگام سرهمبندی با bash از آنها استفاده کنید. اگر سوال یا نظری دارید، در زیر بنویسید.
آرایه Bash در مقابل رشته
یک آرایه bash مجموعه ای از عناصر را ذخیره می کند – به عنوان مثال، مجموعه ای از اعداد به همراه لیستی از کلمات. از طرف دیگر، یک رشته را می توان یک آرایه در نظر گرفت، اما فقط می تواند کاراکترها را ذخیره کند و هیچ چیز دیگری.
آرایه Bash در مقابل لیست
لیست bash دنباله ای از یک یا چند خط لوله است که توسط یکی از اپراتورها از هم جدا شده اند. به این ترتیب، لیست ها به آرایه ها مرتبط نیستند. با این حال، آرایه های نمایه شده گاهی اوقات به عنوان لیست نامیده می شوند.
معنی {} در Bash چیست؟
مهاربندهای فرفری بدون علامت $ به عنوان بسط مهاربند در نظر گرفته می شوند و برای ایجاد رشته های دلخواه استفاده می شوند. برای ساخت آرایه ها می توانید از بریس ها استفاده کنید. مثلا، پژواک {0..100} اعداد صفر تا 100 را چاپ می کند.
آیا Bash یک زبان است؟
بله، bash یک زبان دستوری است. برای خودکار کردن وظایف یا اجرای دستورات استفاده می شود روی خط فرمان در مقایسه با اکثر زبان های برنامه نویسی، یادگیری زبان دستور bash آسان تر است و نحو نسبتاً ساده است.
چگونه یک آرایه Bash را اکو کنیم؟
برای تکرار یک آرایه، از قالب استفاده کنید echo ${آرایه[0]}. آرایه نام آرایه شما است و 0 اگر یک آرایه انجمنی را تکرار می کنید، ایندکس یا کلید است. همچنین می توانید استفاده کنید @ یا * نمادها به جای یک شاخص برای چاپ کل آرایه.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 02:08:08