- Dizini Dizine Göre Tanımlama
- Birden Çok Değere Sahip Bir Dizi Tanımlama
- İlişkisel Dizi Tanımlayın
- Dizi Değerlerini Sayma
- Dizi Değerlerini Döngüye Göre Okuyun
- Dizinin Özel Değerlerini Okuyun
- Dizi Değerlerini Ekleme
- Dizideki Dosya İçeriğini Okuma
- Dizi Değerlerini Birleştirin
- Dizi Değerlerini Değiştirin
- Dizi Değerlerini Kaldırma
- Dizi Değerlerini Arama ve Değiştirme
- Diziyi İşlev Bağımsız Değişkeni Olarak Kullanma
- Diziyi İşlevden Geri Döndürme
- Diziyi Boş Hale Getirin
Dizini Dizine Göre Tanımlama
Sıralı veya sıralı olmayan sayısal indekslerden bahsederek bir dizi bildirme yöntemi aşağıdaki komut dosyasında gösterilmiştir. Bu tür dizilere sayısal dizi adı verilir. Burada “$books” dizisi üç sıralı indeks tanımlanarak, “$products” dizisi ise dört sıralı olmayan indeks tanımlanarak oluşturulur. Her iki dizinin tüm değerleri “printf” fonksiyonu kullanılarak yazdırılır.
#!/bin/bash
#Dizi indeksini sıralı olarak tanımlayın
kitabın [ 0 ] = 'Bash Shell'i Öğrenmek'
kitabın [ 1 ] = 'Bash ile Siber Güvenlik Operasyonları'
kitabın [ 2 ] = 'Bash Komut Satırı Profesyonel İpuçları'
Eko 'İlk dizinin tüm değerleri:'
baskı '%s\n' ' ${kitaplar[@]} '
#Dizi indeksini sıralı olmayan bir sırayla tanımlayın
ürünler [ 10 ] = 'Dolma kalem'
ürünler [ 5 ] = 'Kalem'
ürünler [ 9 ] = 'Kurallı'
ürünler [ 4 ] = 'A4 Boyutunda Kağıt'
Eko
Eko 'İkinci dizinin tüm değerleri:'
baskı '%s\n' ' ${ürünler[@]} '
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. Her iki dizinin değerleri çıktıda yazdırılır. Dizin sırası, sıralı olmayan dizinler dizisi için yazdırma sırasında korunur:
Birden Çok Değere Sahip Bir Dizi Tanımlama
Birden fazla değere sahip bir sayısal dizi, “declare” komutu kullanılarak -a seçeneğiyle veya “declare” komutu kullanılmadan bildirilebilir. Aşağıdaki scriptte ilk dizi “declare” komutu kullanılarak deklare edilir, ikinci dizi ise “declare” komutu kullanılmadan oluşturulur.
#!/bin/bash
#'declare' anahtar kelimesiyle sayısal bir dizi bildirin
ilan etmek -A isimler = ( 'Michael' 'Davut' 'İskender' 'Thomas' 'Robert' 'Richard' )
#Dizi değerlerini yazdır
Eko 'İlk dizinin tüm değerleri:'
baskı '%s\n' ' ${isimler[@]} '
#'declare' anahtar kelimesi olmadan sayısal bir dizi bildirin
kitabın = ( 'Kabuk Komut Dosyası Oluşturma Eğitimleri' 'Bish Bash Bosh!' 'Bash'i Hızla Öğrenin' )
#Yeni satır ekle
Eko
#Dizi değerlerini yazdır
Eko 'İkinci dizinin tüm değerleri:'
baskı '%s\n' ' ${kitaplar[@]} '
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. Her iki dizinin değerleri burada yazdırılır:
İlişkisel Dizi Tanımlayın
Dizin olarak dize değerini içeren diziye ilişkisel dizi adı verilir. -A seçeneği, ilişkisel bir Bash dizisi oluşturmak için Bash'teki “declare” komutuyla birlikte kullanılır. Aşağıdaki scriptte, ilk ilişkisel dizi indekslerden ayrı ayrı bahsederek, ikinci dizi ise dizi bildirimi sırasında tüm anahtar-değer çiftlerinden bahsederek bildirilir.
#!/bin/bash#Değeri olmayan bir ilişkisel dizi değişkeni bildirin
ilan etmek -A çalışan
#İndeksini tanımlayarak değeri ayrı ayrı atayın
çalışan [ 'İD' ] = '78564'
çalışan [ 'isim' ] = 'Aktörler Mevcut'
çalışan [ 'postalamak' ] = 'CEO'
çalışan [ 'maaş' ] = 300000
#Dizinin iki değerini yazdır
Eko 'Çalışan kimliği: ${çalışan[id]} '
Eko 'Çalışan Adı: ${çalışan[isim]} '
#Değerleri olan bir ilişkisel dizi bildirin
ilan etmek -A kurs = ( [ kod ] = 'CSE-206' [ isim ] = 'Nesne yönelimli programlama' [ kredi_saat ] = 2.0 )
#Yeni satır ekle
Eko
#İkinci dizinin iki dizi değerini yazdır
Eko 'Ders Adı: ${kurs[isim]} '
Eko 'Kredi Saati: ${course[credit_hour]} '
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. İlişkisel dizinin belirli değerleri burada anahtar veya indeks değeri belirtilerek yazdırılır:
Dizi Değerlerini Sayma
Sayısal dizinin ve ilişkisel dizinin toplam öğelerini sayma yöntemi aşağıdaki komut dosyasında gösterilmektedir:
#!/bin/bash#Sayısal bir dizi bildirin
ilan etmek -A isimler = ( 'Michael' 'Davut' 'İskender' 'Thomas' 'Robert' 'Richard' ) ;
Eko 'Sayısal dizinin uzunluğu ${#names[@]} '
#İlişkisel bir dizi bildirin
ilan etmek -A kurs = ( [ kod ] = 'CSE-206' [ isim ] = 'Nesne yönelimli programlama' [ kredi_saat ] = 2.0 )
Eko 'İlişkisel dizinin uzunluğu ${#kurs[@]} '
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. Sayısal ve ilişkisel dizilerin dizi uzunluğu burada yazdırılır:
Dizi Değerlerini Döngüye Göre Okuyun
Sayısal bir dizinin ve ilişkisel bir dizinin tüm değerlerini 'for' döngüsünü kullanarak okuma yöntemi aşağıdaki komut dosyasında gösterilmektedir:
#!/bin/bash#Sayısal bir dizi bildirin
ilan etmek -A kitabın = ( 'Kabuk Komut Dosyası Oluşturma Eğitimleri' 'Biş Bash Bosh!' 'Bash'i Hızla Öğrenin' )
#Sayısal dizi değerlerini yazdır
Eko 'Sayısal dizi değerleri:'
için içinde içinde ' ${kitaplar[@]} '
Yapmak
Eko ' $in '
Tamamlandı
Eko
#Değerleri olan bir ilişkisel dizi bildirin
ilan etmek -A müşteriler = (
[ İD ] = 'H-5623'
[ isim ] = 'Bay. Ahnaf'
[ adres ] = '6/A, Dhanmondi, Dakka.'
[ telefon ] = '+8801975642312' )
#İlişkisel dizi değerlerini yazdır
Eko 'İlişkili dizi değerleri:'
için k içinde ' ${!clients[@]} '
Yapmak
Eko ' bin dolar => ${müşteriler[$k]} '
Tamamlandı
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. Burada sayısal dizinin değerleri ve ilişkisel dizinin anahtar-değer çiftleri çıktıda yazdırılır:
Dizinin Özel Değer Aralığını Okuyun
Belirli bir indeks aralığının dizi değerleri aşağıdaki komut dosyasında gösterilmektedir. Komut dosyasında dört öğeden oluşan sayısal bir dizi tanımlanır. Dizinin ikinci indeksinden iki dizi değeri daha sonra yazdırılır.
#!/bin/bash#Sayısal bir dizi bildirin
ilan etmek -A Kekler = ( 'Çikolatalı kek' 'Vanilyalı Kek' 'Kırmızı kadife kek' 'Çilekli Pasta' )
#Belirli dizi değerlerini yazdır
Eko 'Dizi değerlerinin 2. ve 3. elemanları şunlardır:'
baskı '%s\n' ' ${kekler[@]:1:2} '
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. Dizinin ikinci ve üçüncü değerleri çıktıda yazdırılan “Vanilyalı Kek” ve “Kırmızı Kadife Kek”tir:
Dizi Değerlerini Ekleme
Dizinin sonuna birden çok değer ekleme yöntemi aşağıdaki komut dosyasında gösterilmiştir. Ana dizi olan “$books” üç öğeden oluşur ve “$books” dizisinin sonuna iki öğe eklenir.
#!/bin/bash#Sayısal bir dizi bildirin
ilan etmek -A kitabın = ( 'Kabuk Komut Dosyası Oluşturma Eğitimleri' 'Bish Bash Bosh!' 'Bash'i Hızla Öğrenin' )
#Eklemeden önce dizi değerlerini yazdır
Eko 'Dizi değerleri:'
baskı '%s\n' ' ${kitaplar[@]} '
Eko
kitabın = ( ' ${kitaplar[@]} ' 'Linux Komut Satırı ve Kabuk Komut Dosyası İncili' 'Mendel Cooper'dan Gelişmiş Bash Komut Dosyası Oluşturma Kılavuzu' )
#Eklendikten sonra dizi değerlerini yazdır
Eko 'İki değer eklendikten sonra dizi değerleri:'
baskı '%s\n' ' ${kitaplar[@]} '
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. Yeni değerlerin eklenmesinden önceki ve sonraki dizi değerleri çıktıda yazdırılır:
Dizideki Dosya İçeriğini Okuyun
Bu örneğin betiğini test etmek için aşağıdaki içeriğe sahip 'fruits.txt' adında bir metin dosyası oluşturun:
meyveler.txt
MangoNefesi
Ananas
Turuncu
Muz
Aşağıdaki scriptte bir dosyanın içeriği “$data” isimli bir dizide saklanmaktadır. Burada dosyanın her satırı dizinin her elemanı olarak saklanır. Daha sonra dizi değerleri yazdırılır.
#!/bin/bash#Kullanıcıdan dosya adını oku
Okumak -P 'Dosya adını girin:' dosya adı
eğer [ -F $dosyaadı ]
Daha sonra
#Dosya içeriğini bir diziye oku'
veri = ( ' kedi ' $dosyaadı ' ' )
Eko 'Dosyanın içeriği aşağıda verilmiştir:'
#Dosyayı satır satır oku
için astar içinde ' ${veri[@]} '
Yapmak
Eko $satır
Tamamlandı
olmak
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. “cat” komutu tarafından gösterilen çıktı ile betiğin çıktısı benzerdir çünkü aynı dosyaya “cat” komutu ve betik tarafından erişilir:
Dizi Değerlerini Birleştirin
Birden fazla dizinin değerleri birleştirilerek yeni bir dizi oluşturulur. Aşağıdaki komut dosyasında iki sayısal dize dizisi tanımlanmıştır. Daha sonra bu dizilerin değerleri birleştirilerek yeni bir dizi oluşturulur.
#!/bin/bash#İlk diziyi bildir
ilan etmek -A isimListesi1 = ( 'Michael' 'Davut' 'İskender' 'Thomas' )
Eko 'İlk dizi değerleri şunlardır:'
baskı '%S, ' ${nameList1[@]}
Eko
#İkinci diziyi bildir
ilan etmek -A isimListesi2 = ( 'Robert' 'Richard' )
Eko 'İkinci dizi değerleri:'
baskı '%S, ' ${nameList2[@]}
Eko
#İki diziyi birleştirerek yeni bir dizi oluştur
birleştirilmiş_dizi = ( ' ${nameList1[@]} ' ' ${nameList2[@]} ' )
Eko 'Birleşik dizi değerleri şunlardır:'
baskı '%S, ' ${combined_array[@]}
Eko
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. Burada çıktıda üç dizinin değerleri yazdırılır. Üçüncü dizi, birinci ve ikinci dizinin tüm değerlerini içerir:
Dizi Değerlerini Değiştirin
Bir veya daha fazla dizi değerini indeksten bahsederek güncelleme yöntemi aşağıdaki komut dosyasında gösterilmektedir:
#!/bin/bash#İlk diziyi bildir
ilan etmek -A isim listesi = ( 'Michael' 'Davut' 'İskender' 'Thomas' )
Eko 'Dizi değerleri:'
baskı '%S, ' ${nameList[@]}
Eko
#Dizinin 2. değerini güncelle
isim listesi [ 1 ] = 'Robert'
Eko 'Güncellemeden sonraki dizi değerleri:'
baskı '%S, ' ${nameList[@]}
Eko
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. Ana dizinin ve güncellenen dizilerin değerleri çıktıda yazdırılır:
Dizi Değerlerini Kaldırma
Dizinin belirli bir elemanını veya tüm elemanlarını kaldırmak için “unset” komutu kullanılır. Aşağıdaki komut dosyasında dizinin ikinci elemanı kaldırılmıştır.
#!/bin/bash#Sayısal bir dizi bildirin
ilan etmek -A kitabın = ( 'Kabuk Komut Dosyası Oluşturma Eğitimleri' 'Bish Bash Bosh!' 'Bash'i Hızla Öğrenin' )
#Kaldırmadan önce dizi değerlerini yazdır
Eko 'Dizi değerleri:'
baskı '%s\n' ' ${kitaplar[@]} '
Eko
#2. öğeyi kaldır
ayarsız kitabın [ 1 ]
#Kaldırdıktan sonra dizi değerlerini yazdır
Eko '2. değer kaldırıldıktan sonra dizi değerleri:'
baskı '%s\n' ' ${kitaplar[@]} '
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. Ana dizinin değerleri ve bir değer kaldırıldıktan sonra dizi değerleri çıktıda yazdırılır:
Dizi Değerlerini Arama ve Değiştirme
Aşağıdaki komut dosyasında, kalıpta tanımlanan arama değeri '$isimler' dizisinin herhangi bir değeriyle eşleşirse, dizinin belirli değeri başka bir değerle değiştirilir.
#!/bin/bash#İlk diziyi bildir
ilan etmek -A isimler = ( 'Michael' 'Davut' 'İskender' 'Thomas' )
#Orijinal dizi değerlerini yazdır
Eko 'Orijinal dizi değerleri:'
baskı '%s\n' ' ${isimler[@]} '
#Dizi değerlerini değiştirdikten sonra dize oluştur
güncellendi_dizi = ${isimler[@]/Alexander/Richard}
#Değiştirdikten sonra dizi değerlerini yazdır
Eko 'Değiştirildikten sonraki dizi değerleri:'
baskı '%s\n' ' ${updated_array[@]} '
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. Ana dizinin değerleri ve bir değer değiştirildikten sonraki dizi değerleri çıktıda yazdırılır:
Diziyi İşlev Bağımsız Değişkeni Olarak Kullanma
Aşağıdaki komut dosyasında, işlev argümanı olarak bir dizi değişkeni iletilir ve bu dizinin değerleri daha sonra yazdırılır.
#!/bin/bash#Bir sayı dizisi bildirin
ilan etmek -A sayılar = ( 10 6 Dört beş 13 8 )
#Bir bağımsız değişken değeri alacak bir işlev tanımlayın
işlev ( )
{
#İlk argümanı oku
sayılar = 1$
#Dizi değerlerini yazdır
Eko 'Dizi değerleri:'
baskı '%d\n' ' ${sayılar[@]} '
}
#Diziyi argüman olarak kullanarak işlevi çağırın
işlev ' ${sayılar[@]} '
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür:
İşlevden Bir Dizi Döndürme
Aşağıdaki komut dosyasında işlev dört sayısal bağımsız değişkenle çağrılır. Argüman değerleriyle bir dizi oluşturulur ve bu dizi, işlevden çağırana döndürülür.
#!/bin/bash#Dört bağımsız değişken değerini okuyan bir işlev tanımlayın
işlev ( )
{
#Argüman değerlerini oku
sayılar = ( 1$ 2$ 3 dolar 4$ )
#Diziyi döndür
Eko ' ${sayılar[@]} '
}
#İşlevi üç argümanla çağırın
return_val =$ ( işlev 78 Dört beş 90 23 )
#Döndürülen değeri bir dizide saklayın
Okumak -A birde <<< $return_val
#Döndürülen dizinin değerlerini yazdır
Eko 'Dizinin değerleri şunlardır:'
için içinde içinde ' ${sayı[@]} '
Yapmak
Eko ' $in '
Tamamlandı
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür:
Diziyi Boş Hale Getirin
Aşağıdaki komut dosyası, 'unset' komutunu kullanarak bir diziyi boşaltma yöntemini gösterir. Dizi değerlerinin toplam sayısı, diziyi boşaltmadan önce ve sonra yazdırılır.
#!/bin/bash#Sayılardan oluşan bir dizi bildirin
ilan etmek -A sayılar = ( 10 6 Dört beş 13 80 )
Eko 'Dizi değerlerinin sayısı: ${#sayılar[@]} '
#Diziyi boş yap
ayarsız sayılar
Eko 'Diziyi boşalttıktan sonraki dizi değerlerinin sayısı: ${#sayılar[@]} '
Çıktı :
Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. Dizi boş hale getirildikten sonra dizinin eleman sayısı 0 oldu:
Çözüm
Bash betiğinde dizi değişkenlerini bildirmenin, bunlara erişmenin, değiştirmenin ve kaldırmanın farklı yöntemleri bu eğitimde 15 basit örnek kullanılarak gösterilmektedir. Bu eğitimin Bash kullanıcılarının Bash dizisinin kullanımlarını ayrıntılı olarak öğrenmelerine yardımcı olacağını umuyoruz.