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

سرور مجازی NVMe

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

0 2
زمان لازم برای مطالعه: 7 دقیقه


یک متغیر آرایه در هر زبان برنامه نویسی برای ذخیره چندین مقدار با استفاده از یک شاخص استفاده می شود. شاخص آرایه می تواند یک عدد یا رشته باشد. آرایه ای که شامل شاخص عددی است “آرایه عددی” و آرایه ای که حاوی مقدار رشته به عنوان شاخص است “آرایه انجمنی” نامیده می شود. هم آرایه های عددی و هم آرایه های انجمنی را می توان در Bash ایجاد کرد. روش های دستکاری و کنترل داده های آرایه Bash با استفاده از 15 مثال در این آموزش به تفصیل نشان داده شده است.

فهرست مطالب:

  1. یک آرایه را با شاخص تعریف کنید
  2. یک آرایه با مقادیر چندگانه تعریف کنید
  3. یک آرایه انجمنی را تعریف کنید
  4. شمارش مقادیر آرایه
  5. مقادیر آرایه را با حلقه بخوانید
  6. مقادیر خاص آرایه را بخوانید
  7. مقادیر آرایه را درج کنید
  8. یک محتوای فایل را در آرایه بخوانید
  9. مقادیر آرایه را با هم ترکیب کنید
  10. مقادیر آرایه را تغییر دهید
  11. مقادیر آرایه را حذف کنید
  12. مقادیر آرایه را جستجو و جایگزین کنید
  13. از آرایه به عنوان آرگومان تابع استفاده کنید
  14. آرایه را از تابع برگردانید
  15. آرایه را خالی کنید

یک آرایه را با شاخص تعریف کنید

روش اعلان آرایه با ذکر شاخص های عددی متوالی یا غیر متوالی در اسکریپت زیر نشان داده شده است. به این نوع آرایه آرایه عددی می گویند. در اینجا آرایه “$books” با تعریف سه نمایه متوالی و آرایه “$products” با تعریف چهار نمایه غیر متوالی ایجاد می شود. تمام مقادیر هر دو آرایه با استفاده از تابع “printf” چاپ می شوند.

#!/bin/bash

#شاخص آرایه را به ترتیب متوالی تعریف کنید

کتاب ها[0]=“یادگیری پوسته bash”

کتاب ها[1]=“عملیات امنیت سایبری با bash”

کتاب ها[2]=‘نکات حرفه ای خط فرمان Bash’

اکو “همه مقادیر آرایه اول:”

printf ‘%s\n’ ${کتاب[@]}

#شاخص آرایه را به ترتیب غیر متوالی تعریف کنید

محصولات[10]=‘خودکار’

محصولات[5]=‘مداد’

محصولات[9]=“قاعده”

محصولات[4]=“کاغذ سایز A4”

اکو

اکو “همه مقادیر آرایه دوم:”

printf ‘%s\n’ ${محصولات[@]}

خروجی:

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر هر دو آرایه در خروجی چاپ می شود. ترتیب فهرست در زمان چاپ برای آرایه نمایه های غیر متوالی حفظ می شود:

p1

برو به بالا

یک آرایه با مقادیر چندگانه تعریف کنید

یک آرایه عددی با چندین مقدار را می توان با استفاده از دستور “declare” با گزینه -a یا بدون استفاده از دستور “declare” اعلام کرد. در اسکریپت زیر، آرایه اول با استفاده از دستور “declare” و آرایه دوم بدون استفاده از دستور “declare” ایجاد می شود.

#!/bin/bash

#یک آرایه عددی را با کلمه کلیدی “اعلان” اعلام کنید

اعلام نام ها=(‘مایکل’ “دیوید” “اسکندر” “توماس” ‘رابرت’ “ریچارد”)

#مقادیر آرایه را چاپ کنید

اکو “همه مقادیر آرایه اول:”

printf ‘%s\n’ ${names[@]}

#اعلان یک آرایه عددی بدون کلمه کلیدی “اعلان”.

کتاب ها=(“آموزش اسکریپت پوسته” ‘بیش باش بوش!’ “Bash را به سرعت بیاموزید”)

#افزودن خط جدید

اکو

#مقادیر آرایه را چاپ کنید

اکو “همه مقادیر آرایه دوم:”

printf ‘%s\n’ ${کتاب[@]}

خروجی:

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر هر دو آرایه در اینجا چاپ می شود:

p2p2

برو به بالا

یک آرایه انجمنی را تعریف کنید

آرایه ای که حاوی مقدار رشته به عنوان شاخص است آرایه انجمنی نامیده می شود. گزینه -A با دستور “اعلان” در Bash برای ایجاد یک آرایه Bash انجمنی استفاده می شود. در اسکریپت زیر اولین آرایه انجمنی با ذکر اندیس ها به صورت جداگانه و آرایه دوم با ذکر تمام جفت های کلید-مقدار در زمان اعلام آرایه اعلام می شود.

#!/bin/bash

#یک متغیر آرایه انجمنی بدون مقدار را اعلام کنید

اعلام کارمند

#تخصیص مقدار جداگانه با تعریف شاخص

کارمند[‘id’]=‘78564’

کارمند[‘name’]=“سعدیا اکتر”

کارمند[‘post’]=‘مدیر عامل’

کارمند[‘salary’]=300000

#دو مقدار از آرایه را چاپ کنید

اکو “شناسه کارمند: ${کارمند[id]}

اکو “نام کارمند: ${کارمند[name]}

#آرایه انجمنی را با مقادیر اعلام کنید

اعلام دوره=( [code]=‘CSE-206’ [name]=‘برنامه نویسی شی گرا’ [credit_hour]=2.0 )

#افزودن خط جدید

اکو

#دو مقدار آرایه از آرایه دوم را چاپ کنید

اکو “نام دوره: ${دوره[name]}

اکو “ساعت اعتبار: ${دوره[credit_hour]}

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

خروجی:

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر خاص آرایه انجمنی با ذکر مقدار کلید یا شاخص در اینجا چاپ می شود:

p3p3

برو به بالا

شمارش مقادیر آرایه

روش شمارش کل عناصر آرایه عددی و آرایه انجمنی در اسکریپت زیر نشان داده شده است:

#!/bin/bash

#آرایه عددی را اعلام کنید

اعلام نام ها=(‘مایکل’ “دیوید” “اسکندر” “توماس” ‘رابرت’ “ریچارد”);

اکو “طول آرایه عددی است ${#names[@]}

#آرایه انجمنی را اعلام کنید

اعلام دوره=([code]=‘CSE-206’ [name]=‘برنامه نویسی شی گرا’ [credit_hour]=2.0)

اکو “طول آرایه انجمنی است ${# دوره[@]}

خروجی:

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. طول آرایه آرایه های عددی و انجمنی در اینجا چاپ می شود:

p4p4

برو به بالا

مقادیر آرایه را با حلقه بخوانید

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

#!/bin/bash

#آرایه عددی را اعلام کنید

اعلام کتاب ها=(“آموزش اسکریپت پوسته” “بیش باش بوش!” “Bash را به سرعت یاد بگیرید”)

#مقادیر آرایه عددی را چاپ کنید

اکو “مقادیر آرایه عددی عبارتند از:”

برای v که در ${کتاب[@]}

انجام دادن

اکو $v

انجام شده

اکو

#آرایه انجمنی را با مقادیر اعلام کنید

اعلام مشتریان=(

[id]=‘H-5623’

[name]=‘آقای. احناف

[address]=‘6/A, Dhanmondi, Daka.’

[phone]=‘8801975642312+’)

#مقادیر آرایه انجمنی را چاپ کنید

اکو “مقادیر آرایه انجمنی عبارتند از:”

برای ک که در مشتریان ${![@]}

انجام دادن

اکو k $=>${مشتریان[$k]}

انجام شده

خروجی:

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. در اینجا، مقادیر آرایه عددی و جفت های کلید-مقدار آرایه انجمنی در خروجی چاپ می شوند:

p5p5

برو به بالا

محدوده خاصی از مقادیر آرایه را بخوانید

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

#!/bin/bash

#آرایه عددی را اعلام کنید

اعلام کیک ها=(‘کیک شکلاتی’ ‘کیک وانیلی’ کیک قرمز مخملی ‘کیک توت فرنگی’)

#مقادیر آرایه خاص را چاپ کنید

اکو عناصر دوم و سوم مقادیر آرایه عبارتند از:

printf ‘%s\n’ ${کیک[@]:1:2}

خروجی:

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر دوم و سوم آرایه “کیک وانیلی” و “کیک مخملی قرمز” هستند که در خروجی چاپ می شوند:

p6p6

برو به بالا

مقدار آرایه را وارد کنید

روش اضافه کردن چندین مقدار در انتهای آرایه در اسکریپت زیر نشان داده شده است. آرایه اصلی که “$books” است شامل سه عنصر است و دو عنصر در انتهای آرایه “$books” اضافه شده است.

#!/bin/bash

#آرایه عددی را اعلام کنید

اعلام کتاب ها=(“آموزش اسکریپت پوسته” “بیش باش بوش!” “Bash را به سرعت یاد بگیرید”)

#قبل از درج مقادیر آرایه را چاپ کنید

اکو “مقادیر آرایه:”

printf ‘%s\n’ ${کتاب[@]}

اکو

کتاب ها=(${کتاب[@]} “خط فرمان لینوکس و کتاب مقدس پوسته اسکریپت” “راهنمای پیشرفته اسکریپت Bash نوشته مندل کوپر”)

#مقادیر آرایه را بعد از درج چاپ کنید

اکو “مقادیر آرایه پس از درج دو مقدار:”

printf ‘%s\n’ ${کتاب[@]}

خروجی:

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر آرایه قبل و بعد از درج مقادیر جدید در خروجی چاپ می شود:

p7p7

برو به بالا

محتوای فایل را در آرایه بخوانید

برای تست اسکریپت این مثال، یک فایل متنی با نام “fruits.txt” با محتوای زیر ایجاد کنید:

fruits.txt

انبه

جک فروت

آناناس

نارنجی

موز

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

#!/bin/bash

#نام فایل را از کاربر بخوانید

خواندن “نام فایل را وارد کنید:” نام فایل

اگر [ -f $filename ]

سپس

#محتوای فایل را در یک آرایه بخوانید”

داده ها=( `گربه $filename `)

اکو “محتوای فایل در زیر آمده است:”

#فایل را خط به خط بخوانید

برای خط که در ${داده[@]}

انجام دادن

اکو خط $

انجام شده

فی

خروجی:

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. خروجی‌هایی که با دستور «cat» نشان داده می‌شوند و خروجی اسکریپت مشابه هستند، زیرا به همان فایل با دستور «cat» و اسکریپت دسترسی پیدا می‌شود:

p8p8

برو به بالا

مقادیر آرایه را با هم ترکیب کنید

یک آرایه جدید با ترکیب مقادیر چندین آرایه ایجاد می شود. در اسکریپت زیر دو آرایه عددی از رشته ها تعریف شده است. سپس با ترکیب مقادیر این آرایه ها یک آرایه جدید ایجاد می شود.

#!/bin/bash

#آرایه اول را اعلام کنید

اعلام nameList1=(‘مایکل’ “دیوید” “اسکندر” “توماس”)

پیشنهاد می‌کنیم بخوانید:  اکو بدون کاراکتر خط جدید در Bash

اکو “اولین مقادیر آرایه عبارتند از:”

printf ‘%s،’ ${nameList1[@]}

اکو

آرایه دوم را #اعلان کنید

اعلام nameList2=(‘رابرت’ “ریچارد”)

اکو “مقادیر آرایه دوم عبارتند از:”

printf ‘%s،’ ${nameList2[@]}

اکو

#با ترکیب دو آرایه یک آرایه جدید ایجاد کنید

ترکیبی_آرایه=(${nameList1[@]} ${nameList2[@]})

اکو “مقادیر آرایه ترکیبی عبارتند از:”

printf ‘%s،’ ${combined_array[@]}

اکو

خروجی:

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. در اینجا مقادیر سه آرایه در خروجی چاپ می شود. آرایه سوم شامل تمام مقادیر آرایه اول و دوم است:

p9p9

برو به بالا

مقادیر آرایه را تغییر دهید

روش به روز رسانی یک یا چند مقدار آرایه با ذکر شاخص در اسکریپت زیر نشان داده شده است:

#!/bin/bash

#آرایه اول را اعلام کنید

اعلام لیست اسامی=(‘مایکل’ “دیوید” “اسکندر” “توماس”)

اکو “مقادیر آرایه:”

printf ‘%s،’ ${nameList[@]}

اکو

#مقدار دوم آرایه را به روز کنید

لیست اسامی[1]=‘رابرت’

اکو “مقادیر آرایه پس از به روز رسانی:”

printf ‘%s،’ ${nameList[@]}

اکو

خروجی:

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر آرایه اصلی و آرایه های به روز شده در خروجی چاپ می شوند:

p10p10

مقادیر آرایه را حذف کنید

دستور “unset” برای حذف عنصر خاص یا تمام عناصر آرایه استفاده می شود. در اسکریپت زیر، عنصر دوم آرایه حذف شده است.

#!/bin/bash

#آرایه عددی را اعلام کنید

اعلام کتاب ها=(“آموزش اسکریپت پوسته” “بیش باش بوش!” “Bash را به سرعت یاد بگیرید”)

#مقادیر آرایه را قبل از حذف چاپ کنید

اکو “مقادیر آرایه:”

printf ‘%s\n’ ${کتاب[@]}

اکو

# عنصر دوم را حذف کنید

تنظیم نشده کتاب ها[1]

#مقادیر آرایه را بعد از حذف چاپ کنید

اکو “مقادیر آرایه پس از حذف مقدار دوم:”

printf ‘%s\n’ ${کتاب[@]}

خروجی:

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

p11p11

برو به بالا

مقادیر آرایه را جستجو و جایگزین کنید

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

#!/bin/bash

#آرایه اول را اعلام کنید

اعلام نام ها=(‘مایکل’ “دیوید” “اسکندر” “توماس”)

#مقادیر آرایه اصلی را چاپ کنید

اکو “مقادیر آرایه اصلی:”

printf ‘%s\n’ ${names[@]}

#بعد از جایگزینی مقادیر آرایه رشته ایجاد کنید

updated_array=${names[@]/الکساندر/ریچارد}

#مقادیر آرایه را پس از جایگزینی چاپ کنید

اکو “مقادیر آرایه پس از جایگزینی:”

printf ‘%s\n’ ${updated_array[@]}

خروجی:

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر آرایه اصلی و مقادیر آرایه پس از جایگزینی یک مقدار در خروجی چاپ می شوند:

p12p12

برو به بالا

از آرایه به عنوان آرگومان تابع استفاده کنید

در اسکریپت زیر یک متغیر آرایه به عنوان آرگومان تابع ارسال می شود و مقادیر آن آرایه بعدا چاپ می شود.

#!/bin/bash

#آرایه ای از اعداد را اعلام کنید

اعلام شماره=(10 6 45 13 8)

# تابعی را تعریف کنید که مقدار آرگومان بگیرد

تابع()

{

#برهان اول را بخوانید

شماره=1 دلار

#مقادیر آرایه را چاپ کنید

اکو “مقادیر آرایه:”

printf ‘%d\n’ ${شماره[@]}

}

#تابع را با آرایه به عنوان آرگومان فراخوانی کنید

تابع ${شماره[@]}

خروجی:

پس از اجرای اسکریپت خروجی زیر ظاهر می شود:

p13p13

برو به بالا

یک آرایه را از تابع برگردانید

در اسکریپت زیر تابع با چهار آرگومان عددی فراخوانی می شود. یک آرایه با مقادیر آرگومان ایجاد می شود و آن آرایه از تابع به تماس گیرنده برگردانده می شود.

#!/bin/bash

# تابعی را تعریف کنید که چهار مقدار آرگومان را بخواند

تابع()

{

#مقادیر آرگومان را بخوانید

شماره=(1 دلار 2 دلار 3 دلار 4 دلار)

#آرایه را برگردانید

اکو ${شماره[@]}

}

# تابع را با سه آرگومان فراخوانی کنید

return_val=$(تابع 78 45 90 23)

#مقدار برگشتی را در یک آرایه ذخیره کنید

خواندن تعداد <<< $return_val

#مقادیر آرایه برگشتی را چاپ کنید

اکو “مقادیر آرایه عبارتند از:”

برای v که در ${تعداد[@]}

انجام دادن

اکو $v

انجام شده

خروجی:

پس از اجرای اسکریپت خروجی زیر ظاهر می شود:

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

برو به بالا

آرایه را خالی کنید

اسکریپت زیر روش خالی کردن یک آرایه را با استفاده از دستور “unset” نشان می دهد. تعداد کل مقادیر آرایه قبل و بعد از خالی کردن آرایه چاپ می شود.

#!/bin/bash

#آرایه ای از اعداد را اعلام کنید

اعلام شماره=(10 6 45 13 80)

اکو “تعداد مقادیر آرایه: ${#numbers[@]}

#آرایه را خالی کنید

تنظیم نشده شماره

اکو “تعداد مقادیر آرایه پس از خالی کردن آرایه:${#numbers[@]}

خروجی:

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. تعداد عناصر آرایه پس از خالی شدن آرایه 0 شد:

p15p15

برو به بالا

نتیجه

روش های مختلف اعلام، دسترسی، تغییر و حذف متغیرهای آرایه در اسکریپت Bash در این آموزش با استفاده از 15 مثال ساده نشان داده شده است. امیدواریم این آموزش به کاربران Bash کمک کند تا کاربردهای آرایه Bash را با جزئیات بدانند.

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

زمان انتشار: 1402-12-28 16:40:03

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

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

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