Skip to main content

Arrays va Associative Arrays

Kirish

Bash scriptingda arrays (massivlar) va associative arrays (assotsiativ massivlar) yordamida ko‘p miqdordagi ma’lumotlarni tartibli va qulay boshqarish mumkin. Bu imkoniyatlar murakkab skriptlar va avtomatlashtirishda juda foydali.


Oddiy Arrays (Indexed Arrays)

E’lon qilish va qiymat berish

fruits=("olma" "banan" "uzum" "shaftoli")

Elementga murojaat qilish

echo ${fruits[0]}    # olma
echo ${fruits[2]} # uzum

Barcha elementlarni ko‘rsatish

echo ${fruits[@]}

Elementlar sonini aniqlash

echo ${#fruits[@]}   # 4

Element qo‘shish

fruits+=("gilos")

Elementlarni sikl orqali o‘qish

for fruit in "${fruits[@]}"; do
echo $fruit
done

Elementni o‘chirish

unset fruits[1]      # "banan" o‘chiriladi

Associative Arrays (Assotsiativ massivlar)

E’lon qilish

declare -A user
user[name]="Ali"
user[age]=25
user[email]="ali@example.com"

Elementga murojaat qilish

echo ${user[name]}   # Ali
echo ${user[age]} # 25

Barcha kalitlarni va qiymatlarni ko‘rsatish

echo ${!user[@]}     # name age email
echo ${user[@]} # Ali 25 ali@example.com

Sikl orqali o‘qish

for key in "${!user[@]}"; do
echo "$key: ${user[$key]}"
done

Element qo‘shish va o‘chirish

user[city]="Toshkent"
unset user[email]

Amaliy misollar

1. Foydalanuvchilar ro‘yxatini associative arrayda saqlash

declare -A users
users[ali]="ali@example.com"
users[vali]="vali@example.com"
users[sami]="sami@example.com"

for name in "${!users[@]}"; do
echo "$name: ${users[$name]}"
done

2. Indexed arraydan elementlarni filtrlash

numbers=(1 2 3 4 5 6 7 8 9 10)
for num in "${numbers[@]}"; do
if (( num % 2 == 0 )); then
echo "$num juft son"
fi
done

3. Associative arraydan qiymat bo‘yicha qidirish

declare -A colors
colors[red]="#FF0000"
colors[green]="#00FF00"
colors[blue]="#0000FF"

search="#00FF00"
for key in "${!colors[@]}"; do
if [[ "${colors[$key]}" == "$search" ]]; then
echo "$key rangi topildi!"
fi
done

Xulosa

Arrays va associative arrays yordamida bash skriptlarida ma’lumotlarni tartibli va samarali boshqarish mumkin. Indexed arrays — tartibli ro‘yxatlar uchun, associative arrays — kalit-qiymat juftliklari uchun qulay. Amaliyotda bu imkoniyatlar murakkab avtomatlashtirish va tahlil