از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش دستکاری و کنترل داده ها با آرایه Bash
سرفصلهای مطلب
- یک آرایه را با شاخص تعریف کنید
- یک آرایه با مقادیر چندگانه تعریف کنید
- یک آرایه انجمنی را تعریف کنید
- شمارش مقادیر آرایه
- مقادیر آرایه را با حلقه بخوانید
- مقادیر خاص آرایه را بخوانید
- مقادیر آرایه را درج کنید
- یک محتوای فایل را در آرایه بخوانید
- مقادیر آرایه را با هم ترکیب کنید
- مقادیر آرایه را تغییر دهید
- مقادیر آرایه را حذف کنید
- مقادیر آرایه را جستجو و جایگزین کنید
- از آرایه به عنوان آرگومان تابع استفاده کنید
- آرایه را از تابع برگردانید
- آرایه را خالی کنید
یک آرایه را با شاخص تعریف کنید
روش اعلان آرایه با ذکر شاخص های عددی متوالی یا غیر متوالی در اسکریپت زیر نشان داده شده است. به این نوع آرایه آرایه عددی می گویند. در اینجا آرایه “$books” با تعریف سه نمایه متوالی و آرایه “$products” با تعریف چهار نمایه غیر متوالی ایجاد می شود. تمام مقادیر هر دو آرایه با استفاده از تابع “printf” چاپ می شوند.
#شاخص آرایه را به ترتیب متوالی تعریف کنید
کتاب ها[0]=“یادگیری پوسته bash”
کتاب ها[1]=“عملیات امنیت سایبری با bash”
کتاب ها[2]=‘نکات حرفه ای خط فرمان Bash’
اکو “همه مقادیر آرایه اول:”
printf ‘%s\n’ “${کتاب[@]}“
#شاخص آرایه را به ترتیب غیر متوالی تعریف کنید
محصولات[10]=‘خودکار’
محصولات[5]=‘مداد’
محصولات[9]=“قاعده”
محصولات[4]=“کاغذ سایز A4”
اکو
اکو “همه مقادیر آرایه دوم:”
printf ‘%s\n’ “${محصولات[@]}“
خروجی:
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر هر دو آرایه در خروجی چاپ می شود. ترتیب فهرست در زمان چاپ برای آرایه نمایه های غیر متوالی حفظ می شود:
یک آرایه با مقادیر چندگانه تعریف کنید
یک آرایه عددی با چندین مقدار را می توان با استفاده از دستور “declare” با گزینه -a یا بدون استفاده از دستور “declare” اعلام کرد. در اسکریپت زیر، آرایه اول با استفاده از دستور “declare” و آرایه دوم بدون استفاده از دستور “declare” ایجاد می شود.
#یک آرایه عددی را با کلمه کلیدی “اعلان” اعلام کنید
اعلام -آ نام ها=(‘مایکل’ “دیوید” “اسکندر” “توماس” ‘رابرت’ “ریچارد”)
#مقادیر آرایه را چاپ کنید
اکو “همه مقادیر آرایه اول:”
printf ‘%s\n’ “${names[@]}“
#اعلان یک آرایه عددی بدون کلمه کلیدی “اعلان”.
کتاب ها=(“آموزش اسکریپت پوسته” ‘بیش باش بوش!’ “Bash را به سرعت بیاموزید”)
#افزودن خط جدید
اکو
#مقادیر آرایه را چاپ کنید
اکو “همه مقادیر آرایه دوم:”
printf ‘%s\n’ “${کتاب[@]}“
خروجی:
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر هر دو آرایه در اینجا چاپ می شود:
یک آرایه انجمنی را تعریف کنید
آرایه ای که حاوی مقدار رشته به عنوان شاخص است آرایه انجمنی نامیده می شود. گزینه -A با دستور “اعلان” در Bash برای ایجاد یک آرایه Bash انجمنی استفاده می شود. در اسکریپت زیر اولین آرایه انجمنی با ذکر اندیس ها به صورت جداگانه و آرایه دوم با ذکر تمام جفت های کلید-مقدار در زمان اعلام آرایه اعلام می شود.
#یک متغیر آرایه انجمنی بدون مقدار را اعلام کنید
اعلام -آ کارمند
#تخصیص مقدار جداگانه با تعریف شاخص
کارمند[‘id’]=‘78564’
کارمند[‘name’]=“سعدیا اکتر”
کارمند[‘post’]=‘مدیر عامل’
کارمند[‘salary’]=300000
#دو مقدار از آرایه را چاپ کنید
اکو “شناسه کارمند: ${کارمند[id]}“
اکو “نام کارمند: ${کارمند[name]}“
#آرایه انجمنی را با مقادیر اعلام کنید
اعلام -آ دوره=( [code]=‘CSE-206’ [name]=‘برنامه نویسی شی گرا’ [credit_hour]=2.0 )
#افزودن خط جدید
اکو
#دو مقدار آرایه از آرایه دوم را چاپ کنید
اکو “نام دوره: ${دوره[name]}“
اکو “ساعت اعتبار: ${دوره[credit_hour]}“
خروجی:
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر خاص آرایه انجمنی با ذکر مقدار کلید یا شاخص در اینجا چاپ می شود:
شمارش مقادیر آرایه
روش شمارش کل عناصر آرایه عددی و آرایه انجمنی در اسکریپت زیر نشان داده شده است:
#آرایه عددی را اعلام کنید
اعلام -آ نام ها=(‘مایکل’ “دیوید” “اسکندر” “توماس” ‘رابرت’ “ریچارد”);
اکو “طول آرایه عددی است ${#names[@]}“
#آرایه انجمنی را اعلام کنید
اعلام -آ دوره=([code]=‘CSE-206’ [name]=‘برنامه نویسی شی گرا’ [credit_hour]=2.0)
اکو “طول آرایه انجمنی است ${# دوره[@]}“
خروجی:
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. طول آرایه آرایه های عددی و انجمنی در اینجا چاپ می شود:
مقادیر آرایه را با حلقه بخوانید
روش خواندن تمام مقادیر یک آرایه عددی و یک آرایه انجمنی با استفاده از حلقه “for” در اسکریپت زیر نشان داده شده است:
#آرایه عددی را اعلام کنید
اعلام -آ کتاب ها=(“آموزش اسکریپت پوسته” “بیش باش بوش!” “Bash را به سرعت یاد بگیرید”)
#مقادیر آرایه عددی را چاپ کنید
اکو “مقادیر آرایه عددی عبارتند از:”
برای v که در “${کتاب[@]}“
انجام دادن
اکو “$v“
انجام شده
اکو
#آرایه انجمنی را با مقادیر اعلام کنید
اعلام -آ مشتریان=(
[id]=‘H-5623’
[name]=‘آقای. احناف
[address]=‘6/A, Dhanmondi, Daka.’
[phone]=‘8801975642312+’)
#مقادیر آرایه انجمنی را چاپ کنید
اکو “مقادیر آرایه انجمنی عبارتند از:”
برای ک که در “مشتریان ${![@]}“
انجام دادن
اکو “k $=>${مشتریان[$k]}“
انجام شده
خروجی:
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. در اینجا، مقادیر آرایه عددی و جفت های کلید-مقدار آرایه انجمنی در خروجی چاپ می شوند:
محدوده خاصی از مقادیر آرایه را بخوانید
مقادیر آرایه محدوده خاص ایندکس ها در اسکریپت زیر نشان داده شده است. در اسکریپت، یک آرایه عددی از چهار عنصر تعریف شده است. دو مقدار آرایه از نمایه دوم آرایه بعداً چاپ می شود.
#آرایه عددی را اعلام کنید
اعلام -آ کیک ها=(‘کیک شکلاتی’ ‘کیک وانیلی’ کیک قرمز مخملی ‘کیک توت فرنگی’)
#مقادیر آرایه خاص را چاپ کنید
اکو عناصر دوم و سوم مقادیر آرایه عبارتند از:
printf ‘%s\n’ “${کیک[@]:1:2}“
خروجی:
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر دوم و سوم آرایه “کیک وانیلی” و “کیک مخملی قرمز” هستند که در خروجی چاپ می شوند:
مقدار آرایه را وارد کنید
روش اضافه کردن چندین مقدار در انتهای آرایه در اسکریپت زیر نشان داده شده است. آرایه اصلی که “$books” است شامل سه عنصر است و دو عنصر در انتهای آرایه “$books” اضافه شده است.
#آرایه عددی را اعلام کنید
اعلام -آ کتاب ها=(“آموزش اسکریپت پوسته” “بیش باش بوش!” “Bash را به سرعت یاد بگیرید”)
#قبل از درج مقادیر آرایه را چاپ کنید
اکو “مقادیر آرایه:”
printf ‘%s\n’ “${کتاب[@]}“
اکو
کتاب ها=(“${کتاب[@]}“ “خط فرمان لینوکس و کتاب مقدس پوسته اسکریپت” “راهنمای پیشرفته اسکریپت Bash نوشته مندل کوپر”)
#مقادیر آرایه را بعد از درج چاپ کنید
اکو “مقادیر آرایه پس از درج دو مقدار:”
printf ‘%s\n’ “${کتاب[@]}“
خروجی:
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر آرایه قبل و بعد از درج مقادیر جدید در خروجی چاپ می شود:
محتوای فایل را در آرایه بخوانید
برای تست اسکریپت این مثال، یک فایل متنی با نام “fruits.txt” با محتوای زیر ایجاد کنید:
fruits.txt
جک فروت
آناناس
نارنجی
موز
در اسکریپت زیر، محتوای یک فایل در آرایه ای به نام «$data» ذخیره می شود. در اینجا، هر خط از فایل به عنوان هر عنصر آرایه ذخیره می شود. سپس مقادیر آرایه چاپ می شوند.
#نام فایل را از کاربر بخوانید
خواندن -پ “نام فایل را وارد کنید:” نام فایل
اگر [ -f $filename ]
سپس
#محتوای فایل را در یک آرایه بخوانید”
داده ها=( `گربه “$filename“ `)
اکو “محتوای فایل در زیر آمده است:”
#فایل را خط به خط بخوانید
برای خط که در “${داده[@]}“
انجام دادن
اکو خط $
انجام شده
فی
خروجی:
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. خروجیهایی که با دستور «cat» نشان داده میشوند و خروجی اسکریپت مشابه هستند، زیرا به همان فایل با دستور «cat» و اسکریپت دسترسی پیدا میشود:
مقادیر آرایه را با هم ترکیب کنید
یک آرایه جدید با ترکیب مقادیر چندین آرایه ایجاد می شود. در اسکریپت زیر دو آرایه عددی از رشته ها تعریف شده است. سپس با ترکیب مقادیر این آرایه ها یک آرایه جدید ایجاد می شود.
#آرایه اول را اعلام کنید
اعلام -آ nameList1=(‘مایکل’ “دیوید” “اسکندر” “توماس”)
اکو “اولین مقادیر آرایه عبارتند از:”
printf ‘%s،’ ${nameList1[@]}
اکو
آرایه دوم را #اعلان کنید
اعلام -آ nameList2=(‘رابرت’ “ریچارد”)
اکو “مقادیر آرایه دوم عبارتند از:”
printf ‘%s،’ ${nameList2[@]}
اکو
#با ترکیب دو آرایه یک آرایه جدید ایجاد کنید
ترکیبی_آرایه=(“${nameList1[@]}“ “${nameList2[@]}“)
اکو “مقادیر آرایه ترکیبی عبارتند از:”
printf ‘%s،’ ${combined_array[@]}
اکو
خروجی:
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. در اینجا مقادیر سه آرایه در خروجی چاپ می شود. آرایه سوم شامل تمام مقادیر آرایه اول و دوم است:
مقادیر آرایه را تغییر دهید
روش به روز رسانی یک یا چند مقدار آرایه با ذکر شاخص در اسکریپت زیر نشان داده شده است:
#آرایه اول را اعلام کنید
اعلام -آ لیست اسامی=(‘مایکل’ “دیوید” “اسکندر” “توماس”)
اکو “مقادیر آرایه:”
printf ‘%s،’ ${nameList[@]}
اکو
#مقدار دوم آرایه را به روز کنید
لیست اسامی[1]=‘رابرت’
اکو “مقادیر آرایه پس از به روز رسانی:”
printf ‘%s،’ ${nameList[@]}
اکو
خروجی:
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر آرایه اصلی و آرایه های به روز شده در خروجی چاپ می شوند:
مقادیر آرایه را حذف کنید
دستور “unset” برای حذف عنصر خاص یا تمام عناصر آرایه استفاده می شود. در اسکریپت زیر، عنصر دوم آرایه حذف شده است.
#آرایه عددی را اعلام کنید
اعلام -آ کتاب ها=(“آموزش اسکریپت پوسته” “بیش باش بوش!” “Bash را به سرعت یاد بگیرید”)
#مقادیر آرایه را قبل از حذف چاپ کنید
اکو “مقادیر آرایه:”
printf ‘%s\n’ “${کتاب[@]}“
اکو
# عنصر دوم را حذف کنید
تنظیم نشده کتاب ها[1]
#مقادیر آرایه را بعد از حذف چاپ کنید
اکو “مقادیر آرایه پس از حذف مقدار دوم:”
printf ‘%s\n’ “${کتاب[@]}“
خروجی:
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر آرایه اصلی و مقادیر آرایه پس از حذف یک مقدار در خروجی چاپ می شوند:
مقادیر آرایه را جستجو و جایگزین کنید
در اسکریپت زیر، مقدار خاص آرایه با مقدار دیگری جایگزین می شود اگر مقدار جستجویی که در الگو تعریف شده است با هر مقدار از آرایه “$names” مطابقت داشته باشد.
#آرایه اول را اعلام کنید
اعلام -آ نام ها=(‘مایکل’ “دیوید” “اسکندر” “توماس”)
#مقادیر آرایه اصلی را چاپ کنید
اکو “مقادیر آرایه اصلی:”
printf ‘%s\n’ “${names[@]}“
#بعد از جایگزینی مقادیر آرایه رشته ایجاد کنید
updated_array=${names[@]/الکساندر/ریچارد}
#مقادیر آرایه را پس از جایگزینی چاپ کنید
اکو “مقادیر آرایه پس از جایگزینی:”
printf ‘%s\n’ “${updated_array[@]}“
خروجی:
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. مقادیر آرایه اصلی و مقادیر آرایه پس از جایگزینی یک مقدار در خروجی چاپ می شوند:
از آرایه به عنوان آرگومان تابع استفاده کنید
در اسکریپت زیر یک متغیر آرایه به عنوان آرگومان تابع ارسال می شود و مقادیر آن آرایه بعدا چاپ می شود.
#آرایه ای از اعداد را اعلام کنید
اعلام -آ شماره=(10 6 45 13 8)
# تابعی را تعریف کنید که مقدار آرگومان بگیرد
تابع()
{
#برهان اول را بخوانید
شماره=1 دلار
#مقادیر آرایه را چاپ کنید
اکو “مقادیر آرایه:”
printf ‘%d\n’ “${شماره[@]}“
}
#تابع را با آرایه به عنوان آرگومان فراخوانی کنید
تابع “${شماره[@]}“
خروجی:
پس از اجرای اسکریپت خروجی زیر ظاهر می شود:
یک آرایه را از تابع برگردانید
در اسکریپت زیر تابع با چهار آرگومان عددی فراخوانی می شود. یک آرایه با مقادیر آرگومان ایجاد می شود و آن آرایه از تابع به تماس گیرنده برگردانده می شود.
# تابعی را تعریف کنید که چهار مقدار آرگومان را بخواند
تابع()
{
#مقادیر آرگومان را بخوانید
شماره=(1 دلار 2 دلار 3 دلار 4 دلار)
#آرایه را برگردانید
اکو “${شماره[@]}“
}
# تابع را با سه آرگومان فراخوانی کنید
return_val=$(تابع 78 45 90 23)
#مقدار برگشتی را در یک آرایه ذخیره کنید
خواندن -آ تعداد <<< $return_val
#مقادیر آرایه برگشتی را چاپ کنید
اکو “مقادیر آرایه عبارتند از:”
برای v که در “${تعداد[@]}“
انجام دادن
اکو “$v“
انجام شده
خروجی:
پس از اجرای اسکریپت خروجی زیر ظاهر می شود:
آرایه را خالی کنید
اسکریپت زیر روش خالی کردن یک آرایه را با استفاده از دستور “unset” نشان می دهد. تعداد کل مقادیر آرایه قبل و بعد از خالی کردن آرایه چاپ می شود.
#آرایه ای از اعداد را اعلام کنید
اعلام -آ شماره=(10 6 45 13 80)
اکو “تعداد مقادیر آرایه: ${#numbers[@]}“
#آرایه را خالی کنید
تنظیم نشده شماره
اکو “تعداد مقادیر آرایه پس از خالی کردن آرایه:${#numbers[@]}“
خروجی:
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. تعداد عناصر آرایه پس از خالی شدن آرایه 0 شد:
نتیجه
روش های مختلف اعلام، دسترسی، تغییر و حذف متغیرهای آرایه در اسکریپت Bash در این آموزش با استفاده از 15 مثال ساده نشان داده شده است. امیدواریم این آموزش به کاربران Bash کمک کند تا کاربردهای آرایه Bash را با جزئیات بدانند.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-28 16:40:03