Bash script yazarken, veriler üzerinde toplu işlemler yapmak için diziler kullanmak oldukça önemlidir. Bash, birçok programlama dilinde olduğu gibi dizi (array) yapısını destekler. Diziler, birden fazla değeri bir arada tutmak için kullanılır ve bu sayede birden fazla veri üzerinde aynı anda işlem yapmayı kolaylaştırır.

Bu makalede, Bash dizilerini nasıl oluşturabileceğinizi, bu dizilerle nasıl çalışabileceğinizi ve veri işlemlerini nasıl yapabileceğinizi öğreneceksiniz.

Bash Dizilerini Oluşturma

1.1. Temel Dizi Tanımı

Bash dizileri birden fazla değeri tutabilen veri yapılarıdır. Bir dizi tanımlamak için değişken adının ardından parantezler içinde elemanları belirtebilirsiniz:

# Basit bir dizi tanımı
names=("Alice" "Bob" "Charlie")

Bu tanımda "Alice", "Bob" ve "Charlie" değerleri, names adlı bir dizi değişkeninde saklanmaktadır.

1.2. Dizi Elemanlarına Erişim

Bash dizilerindeki bir elemanı çağırmak için dizi değişkeni adının ardından köşeli parantezler kullanılır. Dizilerde indeksleme sıfırdan başlar:

echo ${names[0]}  # Çıktı: Alice
echo ${names[1]}  # Çıktı: Bob

1.3. Tüm Dizi Elemanlarına Erişim

Bir dizinin tüm elemanlarına erişmek için @ veya * kullanabilirsiniz:

echo ${names[@]} # Çıktı: Alice Bob Charlie
echo ${names[*]} # Çıktı: Alice Bob Charlie

@ ve * arasındaki fark, bazı durumlarda (örneğin, bir for döngüsünde) elemanların nasıl ayrıldığını etkileyebilir.

2. Diziler Üzerinde Döngülerle Çalışma

Dizilerle çalışırken genellikle döngüler kullanılır. Bash’te for döngüsü, dizideki her bir elemanı teker teker işlemek için kullanılabilir.

2.1. for Döngüsü ile Dizi Elemanlarını Dolaşmak

Bir for döngüsü kullanarak dizi elemanlarını şu şekilde dolaşabilirsiniz:

for name in "${names[@]}"; do
    echo "İsim: $name"
done

Bu örnekle, dizideki her bir isim sırasıyla ekrana yazdırılır.

3. Dizilere Veri Ekleme ve Çıkarma

3.1. Diziye Eleman Ekleme

Bash’te bir diziye eleman eklemek için basitçe dizinin sonuna yeni bir değer ekleyebilirsiniz:

names+=(“Dave”)
echo ${names[@]} # Çıktı: Alice Bob Charlie Dave

3.2. Belirli Bir Elemanı Silme

Bir diziden belirli bir elemanı çıkarmak için unset komutunu kullanabilirsiniz:

unset names[1]
echo ${names[@]}  # Çıktı: Alice Charlie Dave

names[1] silindiği için "Bob" artık dizide yoktur. Bu durumda dizinin diğer elemanlarının indeksleri otomatik olarak güncellenmez, yani names[2] hâlâ "Dave" olacaktır.

3.3. Tüm Diziyi Silme

Diziyi tamamen temizlemek için de unset komutu kullanılabilir:

unset names

Bu komut, diziyi tamamen bellekten kaldırır.

4. Dizi Boyutunu Öğrenme

Bir dizide kaç eleman olduğunu öğrenmek için ${#dizi_adı[@]} şeklinde yazabilirsiniz:

echo ${#names[@]} # Çıktı: 3

Bu, dizideki eleman sayısını döndürür.

5. Dizilerde Döngü ve İşlem Örnekleri

Dizilerle ilgili bazı yaygın işlemleri inceleyelim. Örneğin, dizideki her elemanın uzunluğunu bulmak veya belirli bir koşulu kontrol etmek isteyebilirsiniz.

5.1. Eleman Uzunluklarını Bulmak

Her bir elemanın uzunluğunu hesaplamak için:

for name in "${names[@]}"; do
    echo "İsim: $name, Uzunluk: ${#name}"
done

Bu, her bir isim ve onun karakter uzunluğunu ekrana yazdırır.

5.2. Dizide Eleman Arama

Dizide belirli bir elemanın olup olmadığını kontrol etmek için for döngüsü kullanabilirsiniz:

search_name="Charlie"
found=0
for name in "${names[@]}"; do
    if [[ "$name" == "$search_name" ]]; then
        found=1
        break
    fi
done

if [[ $found -eq 1 ]]; then
    echo "$search_name dizide bulunuyor."
else
    echo "$search_name dizide bulunmuyor."
fi

Bu örnekte, "Charlie" dizide bulunursa found değişkeni 1 olarak ayarlanır ve mesaj gösterilir.

6. Çok Boyutlu Diziler

Bash’te çok boyutlu diziler, diğer bazı dillerdeki kadar doğrudan bir yapı sunmaz. Ancak iç içe diziler oluşturarak bir tür çok boyutlu dizi yapısı kurabilirsiniz. Örneğin:

matrix=("1 2 3" "4 5 6" "7 8 9")

for row in "${matrix[@]}"; do
    for element in $row; do
        echo -n "$element "
    done
    echo
done

Bu örnek, 3×3 boyutunda bir matris şeklinde diziyi ekrana yazdırır.

7. Uygulama Örneği: Dosya Listesini Dizilerle İşlemek

Bir dizide dosya isimlerini saklayıp bu dosyalar üzerinde işlem yapabilirsiniz. Örneğin, bir dizindeki .txt uzantılı dosyaları listeleyip bunları bir diziye kaydetmek:

files=($(ls *.txt))

for file in "${files[@]}"; do
    echo "Dosya adı: $file"
done

Bu script, mevcut dizindeki tüm .txt dosyalarını listeleyip her bir dosya adıyla işlem yapmanıza olanak tanır.

Bash dizileri, aynı türden birden fazla değeri saklamak ve bu değerler üzerinde toplu işlemler yapmak için oldukça güçlü araçlardır. Diziler kullanarak scriptlerinizi daha etkili ve verimli hale getirebilirsiniz. Bu makalede, dizilerle nasıl çalışabileceğinizi, döngülerle nasıl elemanlar üzerinde işlem yapabileceğinizi ve veri ekleme/çıkarma gibi temel işlemleri nasıl yapabileceğinizi öğrendiniz.

Bash ile daha karmaşık scriptler yazarken, diziler size büyük bir esneklik sağlar ve özellikle dosya yönetimi, verilerin işlenmesi veya kullanıcı girdilerinin saklanması gibi senaryolarda işinizi oldukça kolaylaştırır.

Tepkiniz ne oldu ?

Heyecanlı
0
Mutlu
0
Aşık
0
Emin değilim
0
Şapşal
0

İlginizi Çekebilir

Bir cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Daha fazlası:Geliştirme