از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
راهنمای کامل آرایه های Bash
سرفصلهای مطلب
[*][*]
لینوکس به خودی خود صرفا یک هسته سیستم عامل است. هسته یک جزء حیاتی از سیستم عامل است که ارتباط دستگاه های I/O را با نرم افزار مورد استفاده کاربر تسهیل می کند. علاوه بر این، حافظه، CPU را مدیریت می کند و از سخت افزار و نرم افزار در برابر خرابی محافظت می کند. رابط یا بخش نرم افزاری که کاربر برای تعامل با سخت افزار استفاده می کند، Command Line Interface (CLI) یا Shell نامیده می شود.
پوسته لینوکس برنامه ای با رابط است که دستورات را از کاربر می گیرد، آنها را تفسیر می کند و برای انجام عملیات مشخص شده به هسته ارسال می کند. رابط خط فرمان (CLI) روشی مینیمالیستی برای تعامل با سخت افزار سیستم است. دستورات زیادی برای انجام عملکردهای مختلف مانند ساخت دایرکتوری، جابجایی دایرکتوری، ایجاد یک فایل، حذف یک فایل و غیره وجود دارد.
شل یک پایه است command-line مترجم این یک رابط بین کاربر و هسته ایجاد می کند. در لینوکس، انواع مختلفی از پوسته ها وجود دارد. لیستی از پوسته های رایج در زیر ذکر شده است:
- بورن شل
- Bourne Again Shell [Bash]
- پوسته سی
- پوسته کورن
- تی سی شل
انواع مختلف پوسته ها قابلیت های متفاوتی را ارائه می دهند. کن تامپسون اولین پوسته یونیکس را با نام تامپسون شل معرفی کرد. پوسته Bourne یکی از پوستههایی بود که به طور گسترده توسط استفان بورن در سال 1977 در آزمایشگاههای بل توسعه یافت. Bourne Shell یک نسخه پیشرفته به نام Bourne Again Shell دارد. Bourne Again Shell نیز Bash نامیده می شود. Bash توسط برایان فاکس ساخته شد که شامل تمام ویژگی های پوسته Bourne بود اما بسیار کارآمدتر بود.
Bash پوسته پیشفرض بسیاری از توزیعهای لینوکس و ویژگیهای کلیدی است که متمایز میشود ضربه شدید از جانب اشتراک گذاری در زیر ذکر شده است:
- ویژگی قدرتمند ویرایش فرمان
- اندازه نامحدود تاریخ رویداد
- معرفی نام های مستعار
- اندازه نامحدود آرایه ها
پوسته Bash دارای بسیاری از ویژگی های پیشرفته، از جمله ویژگی های ویرایش و اصلاح قدرتمند است که آن را فوق العاده کاربر پسند می کند.
دستورات بخش اساسی Bash هستند. دستورات به پوسته می گویند که چه عملیاتی را انجام دهد. به طور کلی، پوسته هر بار یک دستور را می گیرد، آن را اجرا می کند و سپس خروجی را نمایش می دهد که به آن خروجی استاندارد در پوسته نیز می گویند. هنگام اجرای یک فرمان، نمی توانید با پوسته تعامل داشته باشید. پوسته قبل از اینکه خود را برای دستور بعدی در دسترس قرار دهد عملیات را کامل می کند. با این حال، اجرای هر دستوری می تواند قطع شود. زمان اجرای دستور در نهایت به نوع تابع بستگی دارد. به عنوان مثال، اگر در حال دانلود یک بسته هستید، ممکن است بیشتر از فهرست کردن مسیر فهرست کاری فعلی طول بکشد.
اگرچه پوسته برای اجرای یک فرمان در یک زمان طراحی شده است، اگر می خواهید چندین دستور را برای انجام یک کار خاص اجرا کنید، Bash راه حلی به نام Bash scripting دارد.
- 1 Bash Scripting
- 2 آرایه ها چیست؟
- 3 کاربرد آرایه ها
- 4 نحو آرایه ها در Bash
- 5 تخصیص آرایه ها در Bash
- 5.1 تخصیص آرایه ها از طریق حلقه
- 5.2 اختصاص آرایه ها از رشته ها
- 6 نوع آرایه در Bash
- 6.1 آرایه های نمایه شده
- 6.2 آرایه های انجمنی
- 7 دسترسی به یک آرایه در Bash
- 7.1 نمایش تمام عناصر یک آرایه
- 7.2 نمایش یک عنصر خاص از یک آرایه
- 7.3 دسترسی به شاخص های اولیه یک آرایه
- 8 اصلاح آرایه ها در Bash
- 8.1 به روز رسانی عناصر
- 8.2 افزودن عناصر
- 8.3 درج عناصر
- 8.4 حذف عناصر
- 8.5 ادغام آرایه ها
- 8.6 حذف شکاف در عناصر آرایه
- 9 تکرار از طریق آرایه با حلقه ها در Bash
- 10 طول آرایه در Bash
- 11 دسترسی به آرایه های انجمنی در Bash
- 12 مثال آرایه Bash
- 12.1 مثال 1: خواندن یک فایل از طریق آرایه
- 12.2 مثال 2: مرتب سازی حباب در Bash
- 12.3 مثال 3: آرایه های چند بعدی در Bash
- 12.4 مثال 4: قالب بندی شعر در بش
- نتیجه
1 Bash Scripting:
اسکریپت مجموعه ای از دستورات است که به کامپیوتر می گوید که چه کاری باید انجام دهد. یک اسکریپت Bash نیز مجموعه ای از دستورات است که می گوید Bash چه کاری را باید انجام دهد. اسکریپت Shell یک فایل متنی است که حاوی مجموعه ای از دستورات برای انجام یک کار خاص است. Bash از زبان برنامه نویسی Bash استفاده می کند که مانند هر زبان برنامه نویسی دیگری، تمام ابزارها را برای انجام عملیات منطقی مانند تخصیص متغیرها، دستورات شرطی، ساختارهای حلقه و آرایه ها فراهم می کند.
همانطور که در بالا ذکر شد، برنامه نویسی Bash مانند هر زبان برنامه نویسی دیگری است. برای ایجاد یک برنامه Bash، به یک محیط توسعه یکپارچه قدرتمند (IDE) نیاز ندارید زیرا می توان آن را ساخت. روی هر ویرایشگر متن ساده ای، چه باشد نانو، vim، یا ویرایشگر متنی که با محیط دسکتاپ ارائه می شود.
برای ایجاد یک اسکریپت Bash، ویرایشگر متن را باز کنید و به آن ارجاع دهید “/صندوقچه/bash” مسیر با استفاده از “#!” تماس گرفت هش بنگ یا شبنگ. این “/صندوقچه/bash” مسیر مفسر بش است. قالب بندی در برنامه نویسی Bash بسیار مهم است. حتی یک فاصله می تواند باعث خطا شود. و شبانگ باید باشد روی بالای فیلمنامه اسکریپت را تایپ کنید و فایل را با “.sh” افزونه. یک پایه “سلام دنیا” اسکریپت Bash در زیر نشان داده شده است:
[*]
echo “سلام لینوکس”
برای اجرای اسکریپت در CLI، تایپ کنید “bash” و مسیر اسکریپت را مشخص کنید.
تخصیص متغیرها در برنامه نویسی Bash ساده است. به هیچ نوع داده ای نیاز ندارد. هر کاراکتر، کلمه یا رشته ای را می توان به عنوان یک متغیر استفاده کرد:
[*]
برای مثال:[*]
[*]
#! /صندوقچه/bash[*]
[*]
var=”سلام لینوکس”[*]
[*]
echo $var
این “سلام لینوکس” رشته به متغیری به نام اختصاص داده می شود “var” در اسکریپت بالا به عنوان یک زبان برنامه نویسی مناسب، Bash از ساختارهای شرطی مانند اگر پس از آن، تودرتو-اگر، و ساختارهای حلقه ای مانند برای در و در حالی که انجام دهید.
یک متغیر منفرد می تواند یک مقدار داشته باشد که می تواند در کد دستکاری شود. اگر می خواهید بیش از یک متغیر از یک نوع داده را به طور همزمان تعریف کنید، از آرایه ها استفاده می شود. علاوه بر این، آرایه ها نیز عناصر کلیدی زبان برنامه نویسی Bash هستند. آرایه ها مجموعه ای از عناصر هستند که با شماره شاخص مشخص می شوند. آرایه ها برای پیاده سازی ساختار داده ضروری هستند. به جای تایپ چندین متغیر، آرایه ها در زمان صرفه جویی می کنند و آسان هستند روی حافظه
2 آرایه ها چیست؟
توسعه دهندگان از بسیاری از جنبه های زبان برنامه نویسی Bash استفاده می کنند. داده های زیادی برای سایر ساختارهای برنامه نویسی مانند حلقه ها و دستورات شرطی در دسترس است، اما ساختاری که به طور گسترده پوشش داده نشده است یک آرایه است. آرایه Bash یک ساختار حیاتی از هر زبان برنامه نویسی است. در ساختار داده پیاده سازی می شود.
بیایید آرایه را با یک مثال واقعی درک کنیم:
- صندوق پست
- صفحات یک کتاب
- صفحه شطرنج
- یک کارتن تخم مرغ
آرایه ترتیبی از آیتم ها است. بنابراین، هر آیتم اگر به شیوه ای مرتب شده باشد، آرایه نامیده می شود. به عنوان مثال، کارتن های تخم مرغ نمونه کاملی از چیدمان اقلام به صورت آرایه دو بعدی هستند. تخم مرغ ها در کارتن عناصری هستند که جعبه آن یک آرایه است. به طور مشابه، صفحات در یک کتاب مرتب شده اند تا کتاب آرایه ای نامیده شود که در آن صفحات عناصر هستند.
به همین ترتیب، شمارههای تماس در تلفنهای ما، آهنگها و ترتیبی از برنامهها روی صفحه اصلی نیز نمونه هایی از یک آرایه هستند.
بیایید نمونه ای از مخاطبین در تلفن خود را در نظر بگیریم، و دفترچه تماس نمونه ای از آرایه ای است که در آن مخاطبین عناصر آن آرایه هستند. ما می توانیم عناصر را دستکاری کنیم، مانند افزودن شماره تماس و حذف شماره تماس.
در نمایش فوق، شماره های تماس عناصری از آرایه هستند که در آن اعداد بالا مکان حافظه هستند.
هنگامی که از یک سایت تجارت الکترونیک بازدید می کنید، مواردی که در سبد خرید قرار می دهید نیز نمونه ای از آرایه هستند، زیرا می توانید مواردی را به سبد خرید اضافه کرده و آنها را حذف کنید.
متغیری که بتواند چندین متغیر را ذخیره کند آرایه نامیده می شود. هیچ محدودیتی برای تخصیص تعدادی از متغیرها در یک آرایه وجود ندارد. عناصر آرایه با شماره ایندکس ارجاع داده می شوند که معمولاً با صفر شروع می شود. این آرایه عمدتاً در پیاده سازی ساختار داده استفاده می شود، که رویکردی برای سازماندهی و مدیریت موثر داده ها است. بیایید یک آرایه را به صورت a تجسم کنیم container با چندین محفظه، همانطور که در تصویر زیر نشان داده شده است:
در نمایش بالا ده محفظه وجود دارد، بنابراین طول آرایه 10 خواهد بود. اولین عدد محفظه 0 و آخرین عدد 9 خواهد بود. محفظه ها را می توان به عنوان عناصر آرایه نیز نامید.
به جای اینکه چندین متغیر را یک به یک تعریف کنند، آرایه ها به آنها کمک می کنند تا آنها را یکجا تعریف کنند. که روشی کارآمد برای تخصیص متغیرها در برنامه نویسی است.
3 کاربرد آرایه ها:
آرایه ها ابزار بسیار قدرتمندی هستند که می توان از آنها در بسیاری از محاسبات علمی استفاده کرد. آرایه ها در هر زبان برنامه نویسی بسیار کاربردی تر از ساختارهای دیگر هستند. برخی از پیاده سازی قابل توجه آرایه ها در زیر ذکر شده است:
- آرایه ها برای مدیریت چندین متغیر با نام یکسان استفاده می شوند.
- آرایه ها را می توان در بردارها استفاده کرد، جایی که بردارها معمولاً آرایه های یک بعدی هستند که به طور گسترده در یادگیری ماشین استفاده می شوند.
- آرایه ها همچنین در پیاده سازی پشته ها استفاده می شوند و پشته ها مانند یک انبوه واقعی از اشیاء فیزیکی رفتار می کنند.
- آرایه ها همچنین در صف ها، deques و جداول هش پیاده سازی می شوند.
- ماتریس ها که یک آرایه مستطیلی از عناصر هستند نیز با استفاده از آرایه ها پیاده سازی می شوند.
- نمودارها در بسیاری از برنامه ها با استفاده از لیست هایی ترسیم می شوند که هر گونه پیاده سازی آرایه نیز می باشد.
- بسیاری از الگوریتمها، مانند الگوریتمهای زمانبندی CPU و الگوریتمهای مرتبسازی، با استفاده از آرایه پیادهسازی میشوند.
- آرایه ها همچنین در تخصیص حافظه پویا درون برنامه ای استفاده می شوند.
- آرایه ها در پردازش گفتار نیز استفاده می شوند.
- فیلترهای حذف نویز نیز از آرایه استفاده می کنند.
پیاده سازی آرایه های بالا به وضوح پتانسیل نوع داده آرایه را نشان می دهد.
4 نحو آرایه ها در Bash:
Bash با پشتیبانی از آرایه های نمایه شده (آرایه یک بعدی) و آرایه های انجمنی ارائه می شود که در بخش بعدی مورد بحث قرار خواهد گرفت. یک نحو معمولی برای اختصاص آرایه در Bash در زیر ذکر شده است:
از آنجایی که آرایه ها مجموعه ای از اشیاء هستند، شماره شیء موجود در آرایه را شماره شاخص یا زیرنویس می نامند. زیرنویس ها موقعیت شی را در آرایه نشان می دهند. به عنوان مثال، برای اختصاص یا تغییر مقدار ایکسهفتم شی در آرایه، نحو به صورت زیر خواهد بود:
این “اعلام” همچنین می توان از کلمه کلیدی برای اعلام آرایه استفاده کرد:
برای اعلام یک آرایه انجمنی:
نحو انتساب ترکیبی یک آرایه به صورت زیر است:
هر یک از روش های ذکر شده قبلی را می توان برای حالت دادن آرایه ها در برنامه نویسی Bash استفاده کرد.
5 تخصیص آرایه ها در Bash:
آرایه ها در برنامه نویسی Bash را می توان به روش های مختلفی اختصاص داد. ساده ترین راه برای اختصاص یک آرایه در برنامه نویسی Bash، تخصیص مجموعه ای از مقادیر با فاصله در پرانتزهای گرد به یک متغیر است که در زیر نشان داده شده است:
آرایه های Bash می توانند انواع مختلفی از عناصر داشته باشند. برای اختصاص آرایه با عناصر رشته:
برای تخصیص صریح یک آرایه با شاخص ها:
برای تخصیص آرایه با شاخص، نام آرایه را تایپ کنید، شاخص را در پرانتز ذکر کنید. “[index_number]” و یک مقدار به آن اختصاص دهید:
[*]
my_array[1]=”بهمن”
آرایه را نیز می توان با اعلان کرد “اعلام” کلمه کلیدی. گزینه ها “-آ” و “-آ” به ترتیب برای اعلام آرایه های نمایه شده و انجمنی استفاده می شود:
[*]
my_array[0]=’جان'[*]
[*]
my_array[1]=”بهمن”
مقادیر رشته به عنوان شاخص در آرایه های انجمنی استفاده می شود:
[*]
my_array[first]=’جان'[*]
[*]
my_array[second]=”بهمن”
یا:
آرایه را می توان از خروجی دستورات دیگر نیز ایجاد کرد.
به عنوان مثال “دنبال” از دستور برای ایجاد لیستی از اعداد استفاده می شود:
5.1 تخصیص آرایه ها از طریق حلقه:
آرایه را می توان از طریق حلقه ها نیز تخصیص داد، به عنوان مثال:
[*]
در حالی که[*]
[*]
خواندن[*]
[*]
انجام دادن[*]
[*]
my_array[$n]=$REPLY[*]
[*]
اجازه دهید n++[*]
[*]
انجام شده < <(دنباله 1 6)[*]
[*]
echo عناصر آرایه عبارتند از: ${my_array[@]}
این «$REPLY» متغیر ویژه است و برابر با ورودی فعلی است.
5.2 اختصاص آرایه ها از رشته ها:
کل رشته را نیز می توان به عنوان یک آرایه اختصاص داد. مثلا:
[*]
my_array=(${my_array_string// / })
در اسکریپت فوق، جداکننده یک «فضا“. جداکننده کاراکتری است که رشته متنی مانند اسلش، کاما، دو نقطه، لوله و حتی فاصله را فردی می کند. در مثال بعدی، جداکننده خط تیره است:
[*]
my_array=(${my_array_string//-/ })
بیایید آن را در برنامه نویسی Bash پیاده سازی کنیم:
[*]
my_array_string=“سلام این لینوکس است”[*]
[*]
my_array=(${my_array_string// / })[*]
[*]
echo ${my_array[3]}[*]
[*]
#————————————-[*]
[*]
my_array_string2=“سلام این لینوکس است”[*]
[*]
my_array=(${my_array_string2//-/ })[*]
[*]
echo ${my_array[@]}
6 نوع آرایه در Bash:
راه ها و روش های زیادی برای استفاده از آرایه وجود دارد. در Bash دو نوع آرایه اولیه وجود دارد:
- آرایه های نمایه شده
- آرایه های انجمنی
6.1 آرایه های نمایه شده:
آرایههای نمایهشده شکل اولیه آرایهای هستند که عناصر ارجاعشده را از طریق یک عدد شاخص که از ۰ شروع میشود، ذخیره میکند. نمونهای از آرایههای نمایهشده در برنامهنویسی Bash در زیر ذکر شده است:
یا آرایهها را میتوان با استفاده از «اعلام” کلمه کلیدی:
[*]
my_array[1] = “مورد دوم”
در مثال بالا، “آرایه” یک متغیر است “الف، ب، ج و د” عناصر آرایه هستند. طول آرایه 4 خواهد بود و عدد شاخص آن “آ” عنصر خواهد بود روی شاخص صفر و “د” روی شاخص سوم
6.2 آرایه های انجمنی:
آرایه های انجمنی آرایه هایی هستند که از رشته به عنوان شاخص استفاده می کنند. به عبارت دیگر، شاخص آرایه در آرایه های انجمنی به شکل نامگذاری شده است. آرایه های انجمنی در Bash با استفاده از اعلان می شوند “اعلام” کلمه کلیدی.
[*]
my_array[one] = “مورد اول”[*]
[*]
my_array[two] = “مورد دوم”
آرایه های انجمنی قبل از اینکه در نسخه 4 گنجانده شوند، بخشی از Bash نیستند. برای تشخیص اینکه از کدام نسخه استفاده می کنید، از دستور زیر استفاده کنید:
اگر نسخه چهار یا بالاتر است، می توانید از آرایه های انجمنی استفاده کنید. برای اعلام آرایه انجمنی “-آ” گزینه به صراحت استفاده می شود:
عناصر نیز می توانند یک به یک مقداردهی اولیه شوند:
[*]
my_array[month2]=”بهمن”
هر رشته یا مجموعه ای از کاراکترها برای اعلام یک آرایه انجمنی استفاده می شود:
توجه به این نکته ضروری است که رشته در اندیس های آرایه، همانطور که در بالا ذکر شد، حاوی فاصله است. روش دیگری برای مقداردهی اولیه آرایه های انجمنی در زیر آورده شده است:
در حال حاضر، Bash از آرایه های چند بعدی پشتیبانی نمی کند. با این حال، روشهای مختلف میتوانند آرایههای چند بعدی را شبیهسازی کنند که در بخش مثالها یافت میشود.
7 دسترسی به یک آرایه در Bash:
مانند همه زبان های برنامه نویسی دیگر، آرایه ها در Bash نیز از طریق اعداد فهرست قابل دسترسی هستند. بیایید آن را از طریق یک مثال درک کنیم:
[*]
echo ${my_array[1]}
این “echo” یک دستور Bash است که خروجی استاندارد را در command-line رابط (CLI). در مثال بالا، “echo” دستور در حال چاپ آیتم است روی اولین شاخص آرایه “آرایه_من”. این “فوریه” چاپ خواهد شد روی خروجی استاندارد از عدد شاخص “فوریه” است 1.
7.1 نمایش تمام عناصر یک آرایه:
برای نمایش تمام عناصر آرایه نقل قول شده به صورت جداگانه، به ترتیب زیر عمل کنید:
برای نمایش تمام عناصر به صورت یک رشته نقل قول، از:
7.2 نمایش عنصر خاص یک آرایه:
برای نمایش هر عنصر آرایه، از:
عوض کن “ایکس” با شماره شاخص عنصری که می خواهید نمایش دهید. به عنوان مثال، به print عنصر سوم آرایه، استفاده از:
آخرین عنصر آرایه را از طریق روش بسط زیرنویس چاپ کنید:
به print آخرین عنصر از طریق نحو زیرنویس، استفاده کنید:
به print طیف وسیعی از عناصر، از نحو ذکر شده در زیر استفاده کنید:
جایی که “ایکس” اولین عدد شاخص است و “y” آخرین عدد شاخص خواهد بود. به عنوان مثال، برای نمایش عناصر از فهرست “0” به “2”، استفاده کنید:
دستور بالا خواهد بود print سه عنصر از شاخص 0 تا 2. تمام عملیات برای دسترسی به آرایه ها در تصویر زیر نشان داده شده است:
[*]
my_array=(ژان فوریه مارس آوریل)[*]
[*]
echo “همه عناصر آرایه:”${my_array[@]}[*]
[*]
echo عنصر دوم آرایه:${my_array[1]} #شاخص از 0 شروع می شود[*]
[*]
echo “آخرین عنصر آرایه از طریق بسط رشته فرعی:”${my_array[@]: -1}[*]
[*]
echo “آخرین عنصر آرایه از طریق زیرنویس:”${my_array[-1]}[*]
[*]
echo “عناصر از شاخص 1 تا 3:”${my_array[@]:1:3}
7.3 دسترسی به شاخص های اولیه آرایه:
شاخص یک آرایه عنصر کلیدی در هنگام برنامه نویسی است. برای بدست آوردن شماره فهرست از:
[*]
my_array[3]=”جان”[*]
[*]
my_array[5]=”بهمن”[*]
[*]
my_array[9]=”مار”[*]
[*]
my_array[12]=”مار”[*]
[*]
echo “فهرست نمایه ها:”${!my_array[@]}
8 اصلاح آرایه ها در Bash:
یکی از مزایای استفاده از آرایه ها این است که هر عنصر آرایه به راحتی قابل دسترسی و تغییر است. آرایه ها در Bash راه های مختلفی برای تغییر دارند. تمامی روش ها در زیر ذکر شده است:
8.1 به روز رسانی عناصر:
برای به روز رسانی یک عنصر خاص در یک آرایه، دستور زیر را دنبال کنید:
مثلا:
[*]
my_array=(ژان فوریه مارس آوریل)[*]
[*]
my_array[2]=”ممکن است”[*]
[*]
echo “عنصر به روز شده:”${my_array[@]}
در مثال بالا، عنصر روی شاخص دوم که است “مار” جایگزین خواهد شد “ممکن است”.
8.2 افزودن عناصر:
برای افزودن عناصر به انتهای یک آرایه:
برای اضافه کردن یک عنصر در ابتدای یک آرایه:
بیایید آن را در یک اسکریپت Bash پیاده سازی کنیم:
[*]
my_array=(ژان فوریه مارس آوریل)[*]
[*]
my_array+=(ژوئن ژوئیه)[*]
[*]
echo “آرایه پس از افزودن عناصر:”${my_array[@]}[*]
[*]
my_array=(“دسامبر” ${my_array[@]})[*]
[*]
echo “افزودن عنصر در انتهای آرایه:”${my_array[@]}
8.3 درج عناصر:
برای درج یک عنصر در یک شاخص خاص، موارد زیر را دنبال کنید:
[*]
من=2[*]
[*]
my_array=(“${my_array[@]:0:$i}” ” مرداد ” ”${my_array[@]:$i}”)
مثال بالا درج عنصر است “اوت” روی دومین اندیس آرایه(آرایه من) و عناصر زیر را به نمایه های بعدی منتقل کنید. المانها “مار” و “آوریل” به ترتیب به شاخص 3 و 4 منتقل می شود:
[*]
my_array=(ژان فوریه مارس آوریل)[*]
[*]
من=2[*]
[*]
my_array=(“${my_array[@]:0:$i}“ “آگوست” “${my_array[@]:$i}“)[*]
[*]
echo “آرایه پس از درج یک عنصر:”${my_array[@]}
8.4 حذف عناصر:
در آرایه های Bash، عناصر را می توان با استفاده از “حذف کرد.تنظیم نشده” فرمان به عنوان مثال، برای حذف تمام عناصر یک آرایه، از:
[*]
تنظیم نشده my_array
این “تنظیم نشده” دستور داخلی برای حذف متغیرهای اعلام شده است. برای حذف تنظیم یک عنصر خاص در یک آرایه، از:
[*]
my_array=(ژان فوریه مارس آوریل)[*]
[*]
تنظیم نشده my_array[2][*]
[*]
echo آرایه پس از حذف عنصر روی شاخص سوم:${my_array[@]}
عناصر را می توان با استفاده از ” حذف کردالگو” دستور:
عناصری که با “جو” همانطور که در خروجی اسکریپت زیر نشان داده شده است، از آرایه حذف خواهد شد:
[*]
my_array=(ژان فوریه مارس آوریل می ژوئن جولای)[*]
[*]
الگوی من(${my_array[@]/ju*/})[*]
[*]
echo “آرایه پس از حذف عناصر بر اساس الگو:”${my_pattern[@]}
8.5 ادغام آرایه ها:
برای ادغام دو آرایه از:
بیایید دو آرایه را در Bash ادغام کنیم:
[*]
my_array1=(ژان فوریه مارس آوریل)[*]
[*]
my_array2=(می ژوئن ژوئیه آگوست)[*]
[*]
my_array=(${my_array1[@]} ${my_array2[@]})[*]
[*]
echo “آرایه ادغام شده:”${my_array[@]}
8.6 حذف شکاف در عناصر آرایه:
برای حذف شکاف های ناخواسته در آرایه و نمایه سازی مجدد آرایه از موارد زیر استفاده کنید:
[*]
my_array=(ژان فوریه مارس آوریل)[*]
[*]
my_array2=(${my_array[@]})[*]
[*]
echo آرایه پس از حذف شکاف ها:${my_array2[@]}
در نمایش فوق، عناصری از “آرایه_من” شکاف هایی در آنها وجود دارد.
9 تکرار از طریق آرایه با حلقه ها در Bash:
راه های مختلفی برای دسترسی به یک آرایه وجود دارد. یا می توانید با تایپ هر عنصر به آنها دسترسی پیدا کنید یا می توانید از طریق عناصر آرایه حلقه بزنید. بیایید آن را از طریق یک مثال درک کنیم:
ابتدا از «برای…در» حلقه:
[*]
انجام دادن[*]
[*]
echo $i[*]
[*]
انجام شده
C یک زبان برنامه نویسی پرکاربرد است. خوشبختانه در Bash، می توانید از حلقه “for” به سبک زبان C نیز استفاده کنید که به عنوان حلقه کلاسیک نیز نامیده می شود:
[*]
انجام دادن[*]
[*]
echo ${my_array[i]}[*]
[*]
انجام شده
آرایه ها از طریق نیز قابل دسترسی هستند در حالی که حلقه:
[*]
در حالی که[ $i -lt ${#my_array[@]} ];[*]
[*]
انجام دادن[*]
[*]
echo my_array[$i][*]
[*]
من=$((من +1))[*]
[*]
انجام شده
بجای “-آن”، کمتر از علامت “<" نیز قابل استفاده است، حلقه بالا را می توان به صورت زیر نیز نوشت:
[*]
در حالی که (( $i < ${#my_array[@]} ));[*]
[*]
انجام دادن[*]
[*]
echo my_array[$i][*]
[*]
((i++))[*]
[*]
انجام شده
این تا زمان حلقه همچنین می تواند برای تکرار در میان آرایه ها استفاده شود:
[*]
تا زمان [ $i -ge ${#my_array[@]} ];[*]
[*]
انجام دادن[*]
[*]
echo ${my_array[i]}[*]
[*]
من=$((من +1))[*]
[*]
انجام شده
در قالب عددی:
[*]
تا زمان (( $i < ${#my_array[@]} ));[*]
[*]
انجام دادن[*]
[*]
echo ${my_array[i]}[*]
[*]
من=$((من +1))[*]
[*]
انجام شده
اسکریپت اجرای تمام ساختارهای حلقه در Bash در زیر ذکر شده است:
my_array=(e1 e2 e3 e4 e5 e6)[*]
برای من که در ${my_array[@]}[*]
انجام دادن[*]
echo “برای در حلقه:” $i[*]
انجام شده[*]
#———————————————– —[*]
برای((من=0؛من<${#my_array[@]};i++))[*]
انجام دادن[*]
echo “برای حلقه:” ${my_array[i]}[*]
انجام شده[*]
#———————————————– —[*]
من=0[*]
در حالی که [ $i -lt ${#my_array[@]} ][*]
انجام دادن[*]
echo “حلقه در حالی که:” ${my_array[$i]}[*]
من=$((من +1))[*]
انجام شده[*]
#———————————————– —[*]
من=0[*]
تا زمان [ $i -ge ${#my_array[@]} ][*]
انجام دادن[*]
echo “تا حلقه:” ${my_array[i]}[*]
من=$((من +1))[*]
انجام شده[*]
#———————————————– —
10 طول آرایه در Bash:
دانستن طول آرایه هنگام کار با آرایه ها بسیار مهم است. برای شناسایی طول یک آرایه، از موارد زیر استفاده کنید:
[*]
echo ${#my_array[@]}
شخصیت “#” قبل از نام آرایه استفاده می شود.
اگر عناصر یک آرایه در قالب رشته هستند، برای دانستن طول عنصر رشته در یک آرایه، از:
[*]
echo ${#my_array[1]}
دستورات بالا طول عنصر دوم آرایه را که عبارتند از 8، از آنجا که “فوریه” 8 کاراکتر است
[*]
my_array=(ژان فوریه مارس آوریل)[*]
[*]
echo “طول آرایه:”${#my_array[@]}[*]
[*]
my_array=(ژانویه فوریه مارس آوریل)[*]
[*]
echo “طول عنصر رشته:”${#my_array[1]}
11 دسترسی به آرایه های انجمنی در Bash:
دسترسی به آرایه های انجمنی مشابه دسترسی به آرایه های نمایه شده است. تنها تفاوت این است که در آرایه های انجمنی، ایندکس رشته ای است:
[*]
echo ${my_array[month1]}
برای فهرست کردن شاخصهای آرایههای انجمنی، از:
برای نمایش مقادیر آرایه از:
تکرار از طریق آرایه های انجمنی:
[*]
برای من که در ${!my_array[@]} ;[*]
[*]
انجام دادن[*]
[*]
echo my_array[$i][*]
[*]
انجام شده
برای شمارش عناصر آرایه های انجمنی از:
[*]
echo {#آرایه_من[@]}
تمام ساختارهای ذکر شده قبلی در اسکریپت زیر پیاده سازی شده اند:
اعلام -آ my_array=([month1]=“جان” [month2]=“فوریه” [month3]=“مار” [month4]=“آوریل”)[*]
echo “اولین عنصر:” ${my_array[month1]}[*]
echo “شاخص های آرایه های انجمنی:” ${!my_array[@]}[*]
echo “تعداد عناصر آرایه انجمنی:” ${#my_array[@]}[*]
echo “عناصر آرایه های انجمنی:” ${my_array[@]}[*]
#————–تکرار آرایه انجمنی——————-[*]
[*]
برای من که در ${!my_array[@]}[*]
انجام دادن[*]
echo ${my_array[$i]}[*]
انجام شده
عمل | |
echo $آرایه[@] | به print تمام عناصر یک آرایه |
echo $!آرایه[@] | به print تمام شاخص های یک آرایه |
echo $#آرایه[@] | به print طول یک آرایه |
echo $آرایه[x] | به print یک عنصر خاص از یک آرایه با شاخص “x” |
آرایه[x]= ارزش | برای درج/جایگزینی یک عنصر در شاخص خاصی از یک آرایه |
آرایه تنظیم نشده[x] | برای حذف یک عنصر در یک شاخص خاص |
12 مثال آرایه Bash:
آرایه های Bash ساختار داده هستند و برای مدیریت مجموعه متغیرها بسیار مفید هستند. آرایه ها کاربردهای مختلفی در برنامه نویسی دارند. بیایید بیشتر توضیح دهیم روی استفاده از آرایه ها از طریق مثال:
12.1 مثال 1: خواندن یک فایل از طریق آرایه:
برای خواندن یک فایل، ابتدا باید یک فایل بسازیم. راه های مختلفی برای ایجاد یک فایل در لینوکس وجود دارد، به عنوان مثال، با استفاده از یک عملگر تغییر مسیر، cat یا فرمان لمسی. فایل ایجاد شده قابل ویرایش است نانو یا vim ویرایشگر
من یک فایل در “نانو” و آن را با نام ذخیره کرد “my_file.txt”. برای خواندن فایل از:
[*]
#! /صندوقچه/bash[*]
[*]
echo “نام را وارد کنید فایل”[*]
[*]
خواندن فایل[*]
[*]
فایل=( `گربه “$file”`)[*]
[*]
برای ل که در ${پرونده[@]}[*]
[*]
انجام دادن[*]
[*]
echo l دلار[*]
[*]
انجام شده
12.2 مثال 2: مرتب سازی حباب در Bash:
مرتب سازی برای مدیریت داده ها استفاده می شود و یکی از تکنیک های شناخته شده در برنامه نویسی برای کارآمدتر کردن عملکرد الگوریتم مانند الگوریتم جستجو است. مرتب سازی حباب، که به مرتب سازی غرق شده نیز معروف است، یکی از روش های مرتب سازی آسان برای درک است. مراحل مرتب سازی حباب را از طریق لیست آرایه ارائه شده، مقایسه عناصر آرایه، swap عنصر موجود در متغیرهای موقت را انتخاب کنید و کار را تکرار کنید تا آرایه مرتب شود. نمونه ای از مرتب سازی حباب در bash در زیر آورده شده است:
[*]
my_array=(2 3 1 5 4)[*]
[*]
echo “آرایه مرتب نشده:” ${my_array[*]}[*]
[*]
برای ((ایکس=0; ایکس<5; x++))[*]
[*]
انجام دادن[*]
[*]
[*]
[*]
برای ((y=0; y<5-من-1; y++))[*]
[*]
[*]
[*]
انجام دادن[*]
[*]
اگر [ ${my_array[y]} -gt ${my_array[$((y+1))]} ][*]
[*]
سپس[*]
[*]
دما=${my_array[y]}[*]
[*]
[*]
[*]
my_array[$y]=${my_array[$((y+1))]}[*]
[*]
[*]
[*]
my_array[$((y+1))]=دمای $[*]
[*]
فی[*]
[*]
[*]
[*]
انجام شده[*]
[*]
انجام شده[*]
[*]
echo “آرایه مرتب شده:” ${my_array[*]}
12.3 مثال 3: آرایه های چند بعدی در Bash:
آرایه های چند بعدی بخش رسمی زبان برنامه نویسی Bash نیستند. اما Bash از ساختارهای اصلی برنامه نویسی، از همه مهمتر حلقه ها، پشتیبانی می کند. آرایه های چند بعدی را می توان به راحتی با استفاده از آن شبیه سازی کرد “برای” حلقه ها:
[*]
اعلام -آ my_array[*]
[*]
echo “تعداد ردیف ها را وارد کنید”[*]
[*]
خواندن ردیف ها[*]
[*]
echo “تعداد ستون ها را وارد کنید”[*]
[*]
خواندن cols[*]
[*]
برای ((ایکس=0; ایکس<ردیف ها؛ x++))[*]
[*]
انجام دادن[*]
[*]
برای ((y=0; y<cols; y++))[*]
[*]
انجام دادن[*]
[*]
my_array[${x},${y}]=تصادفی $ #تخصیص یک عدد تصادفی[*]
[*]
انجام شده[*]
[*]
انجام شده[*]
[*]
برای ((من=0; من<ردیف ها؛ i++))[*]
[*]
انجام دادن[*]
[*]
برای ((y=0; y<cols; y++))[*]
[*]
انجام دادن[*]
[*]
echo -نه “${my_array[${x},${y}]}\ t“[*]
[*]
انجام شده[*]
[*]
echo[*]
[*]
انجام شده
کد بالا سطرها و ستون ها را به عنوان ورودی از کاربر می گیرد و سپس یک عدد شبه تصادفی از 0-32767.
12.4 مثال 4: قالب بندی شعر در Bash:
مثال زیر اجرای دیگری از آرایه است. اسکریپت خطوط بند را به عنوان ورودی از کاربر می گیرد، آنها را قالب بندی می کند و print کل بند در خروجی استاندارد:
[*]
echo “خط اول مصرع را وارد کنید”[*]
[*]
خواندن خط[1][*]
[*]
echo “خط دوم مصرع را وارد کنید”[*]
[*]
خواندن خط[2][*]
[*]
echo “خط سوم مصرع را وارد کنید”[*]
[*]
خواندن خط[3][*]
[*]
echo “خط چهارم مصرع را وارد کنید”[*]
[*]
خواندن خط[4][*]
[*]
echo “نام نویسنده را وارد کنید”[*]
[*]
خواندن خط[5][*]
[*]
برای من که در 1 2 3 4 #گرفتن چهار سطر مصراع[*]
[*]
انجام دادن[*]
[*]
echo -e “\e[3m${line[i]}\e[10m” #Making the text italic[*]
[*]
done[*]
[*]
echo -e ” \e[4m${line[5]}\e[10متر”[10m” #زیر متن
نتیجه:
آرایه یکی از ساختارهای حیاتی در هر زبان برنامه نویسی است. این اجازه می دهد تا عناصر مختلف از یک نوع داده را در یک متغیر ذخیره کنید، و می توان به آن عناصر از طریق موقعیت شاخص دسترسی داشت. آرایه ها در ساختار داده، جداول هش، لیست های پیوندی یا درخت های جستجو استفاده می شوند.
لینوکس در حال رشد است، اگرچه بازار کامپیوترهای رومیزی بسیار کوچکی دارد. منبع اصلی برای تعامل با هسته لینوکس پوسته است. Shell رابطی است که به کاربر کمک می کند تا با هسته سیستم لینوکس ارتباط برقرار کند. انواع مختلفی از پوسته ها وجود دارد، اما پوسته ای که به طور گسترده مورد استفاده قرار می گیرد، پوسته Bourne Again است که به نام Bash نیز شناخته می شود. Bash دستور را به عنوان ورودی از کاربر می گیرد و آن را برای هسته تفسیر می کند تا یک کار را انجام دهد.
به طور مشابه، برای اجرای چند دستور یا انجام یک کار خاص، از برنامه نویسی Bash استفاده می شود. به اسکریپت نویسی Bash اسکریپت نویسی پوسته نیز گفته می شود و از زبان برنامه نویسی Bash استفاده می کند که کمتر از هر زبان اسکریپت نویسی دیگری نیست. مانند هر زبان برنامه نویسی دیگری، Bash شامل همه چیزهایی مانند تعریف متغیر، عبارات شرطی و حلقه ها است. آرایه یک ساختار داده مهم است که برای مدیریت داده ها استفاده می شود.
عملکرد آرایه ها در برنامه نویسی Bash مانند سایر زبان های برنامه نویسی است. اما همچنان آرایه ها در Bash به اندازه سایر زبان های برنامه نویسی یا برنامه نویسی پیشرفته نیستند.
Bash دو نوع آرایه ارائه می دهد، آرایه نمایه شده و آرایه انجمنی. آرایه های انجمنی در نسخه چهارم معرفی شدند bash. در آرایه نمایه شده، ایندکس ها عددی هستند، در حالی که در آرایه های انجمنی، شاخص ها می توانند رشته ای باشند. به شاخص های آرایه های انجمنی، کلید نیز گفته می شود.
Bash گزینه های مختلف اصلاح آرایه مانند درج یک عنصر، حذف یک عنصر، جایگزینی یک عنصر و دسترسی به یک عنصر در یک شاخص خاص را ارائه می دهد. آرایههای Bash میتوانند کاربردهای متعددی داشته باشند، فهرستهای پخش در پخشکنندههای موسیقی، و مخاطبین موجود در فهرست مخاطبین نمونههایی از استفاده از یک آرایه هستند. علاوه بر این، آرایه ها می توانند به عنوان مدیریت داده ها، پشته ها، صف ها، پشته ها و غیره استفاده شوند.
در Bash، آرایه ها به اندازه سایر زبان های برنامه نویسی قدرتمند نیستند. دلایل متعددی وجود دارد: Bash یک زبان برنامه نویسی شی گرا نیست، روش یادگیری آن سخت است، زمان اجرا کند است و در برابر خطاها آسیب پذیر است. علاوه بر این، از آرایه های چند بعدی پشتیبانی نمی کند.
با وجود آن، آرایهها میتوانند در انجام وظایف مختلف مانند جابجایی پارامتر، هشدار ورود به سیستم در حین اجرای cronjobها و بسیاری از منطق برنامهنویسی مفید باشند.
[*]
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
[*]زمان انتشار: 1402-12-30 17:54:03