## 📦 کار با آرایهها در اسکریپتنویسی Shell – بخش ۸
آرایهها در برنامهنویسی ابزارهایی بسیار مفید برای نگهداری مجموعهای از دادهها تحت یک نام هستند. Bash نیز از آرایههای یکبعدی پشتیبانی میکند که در این مقاله نحوه کار با آنها توضیح داده شده است ([tecmint.com][1]).
---
### ✅ ۱. تعریف و مقداردهی آرایه
دو روش اصلی:
```bash
# بدون اعلان قبلی
var[0]="element1"
var[1]="element2"
# یا
var=( element1 element2 element3 )
```
همچنین میتوان از سینتکس مشخص زیر استفاده کرد:
```bash
array=( [0]=foo [2]=bar )
```
اندیسها از عدد صفر شروع میشوند ([tecmint.com][1]).
---
### 📥 ۲. خواندن آرایه در زمان اجرا
با دستور `read` و گزینه `-a` امکانپذیر است:
```bash
read -a arr
# سپس کاربر مقادیر را وارد کرده و Enter میزند
```
---
### 🔁 ۳. پیمایش (Loop) روی آرایه
برای دسترسی به همه عناصر:
```bash
for element in "${arr[@]}"; do
echo "$element"
done
```
و یا دستیابی به اندیسها:
```bash
for idx in "${!arr[@]}"; do
echo "Index $idx => ${arr[$idx]}"
done
```
در این حالت، `${!arr[@]}` لیستی از اندیسها برمیگرداند ([tecmint.com][1], [linuxconfig.org][2]).
---
### 🔢 ۴. انتقال آرایه به تابع
در Bash مدرن (4.3+) میتوانید آرایه را به صورت مرجع منتقل کنید:
```bash
myFunction() {
local -n arr_ref=$1
echo "${arr_ref[@]}"
}
myArray=(foo bar baz)
myFunction myArray
```
این قابلیت به شما اجازه میدهد عملیات را روی آرایه اصلی انجام دهید ([gist.github.com][3]).
---
### 🆚 ۵. عملیات رایج روی آرایه
| عملیات | دستور |
| --------------- | -------------------------- |
| تمام عناصر | `${arr[@]}` یا `${arr[*]}` |
| طول آرایه | `${#arr[@]}` |
| اضافه کردن عنصر | `arr+=(new_item)` |
| حذف عنصر | `unset arr[index]` |
| حذف کامل آرایه | `unset arr` |
➡️ عناصر جداشده بسته به استفاده از `"${arr[@]}"` یا `"${arr[*]}"` رفتاری متفاوت دارند—اولی هر عنصر را جدا میگذارد، دومی همه را به صورت یک رشته ([linuxconfig.org][2], [tecmint.com][1]).
---
## ✅ جمعبندی
* آرایهها روش مؤثری برای سازماندهی داده در bash هستند.
* میتوانید آنها را تعریف، مقداردهی، پیمایش، تغییر و حذف کنید.
* انتقال و دستکاری آرایهها در توابع پیشرفتهتر با Bash جدید ممکن است.