Bash dizilerini öğrenin; bunların nasıl bildirileceğini, değiştirileceğini ve silineceğini öğrenin.

Diziler, birbiriyle ilişkisi olan değerleri tutmak için kullanılan veri depolarıdır. Çoğu programlama dilinden farklı olarak Bash dizileri, farklı veri türlerinin değerlerini aynı dizide saklayabilir.

Bash'te iki tür dizi vardır: indekslenmiş diziler ve ilişkisel diziler. Dizinlenmiş diziler için dizinler çoğu dilde yaygın olduğu gibi 0'dan (n-1)'e kadar başlar. Ancak Bash'teki diziler seyrektir. Bu, (n-2)'inci elemanı atamadan (n-1)'inci dizi elemanını atayabileceğiniz anlamına gelir.

Bu derste Bash'te dizilerle nasıl çalışılacağını öğreneceksiniz. Başlayalım.

Dizileri Tanımlama

Bash'te dizileri tanımlamanın üç yolu vardır. Bash değişkenlerine benzer şekilde dizilerin de oluşturulma sırasında başlatılması gerekir. Bunun tek istisnası, ilan etmek anahtar kelime. Ayrıca diziyi başlatırken atama operatörünün her iki tarafında da boşluk kalmadığından emin olmanız gerekir.

İlk yöntem, dizi adına değerlerin bileşik atanmasıdır. Bunu yapmanın iki yolu vardır:

instagram viewer
arr1 = (3 5 6 7)
# or this
arr2 = ([3]=5 [1]=8 [0]=7)

İlk bileşik atamada, yuvarlak parantez içindeki değerler dizine göre sırayla atanır. [0] ile [3].

Ancak ikincisinde değerler, programcının belirttiği sıraya göre bir indekse atanır.

İlgili: Linux'ta Ortam Değişkenleri Nelerdir? Bilmen gereken her şey

Eğer yakından ilgilendiyseniz varış2, bu dizini fark edeceksiniz [2] dışarıda bırakıldı. Dizi yine de herhangi bir hata atılmadan oluşturulacaktır. Bu ödev aslında daha önce de değindiğimiz gibi Bash dizilerindeki seyrek depolamanın bir gösterimidir.

Dizi değerlerini ayıran virgül olmadığına dikkat edin. Değerler basitçe boşluklarla ayrılır.

İkinci yöntem dolaylı olarak diziyi bildirir. Boş dizi öğelerine değer atamaya başlayabilirsiniz:

arr3[0]=Toyota
arr3[1]=Honda
arr3[2]=Mercedes

Üçüncü yol ise diziyi anahtar kelimeyle açıkça bildirmektir. ilan etmek:

declare -a arrayName

Dizilerdeki İşlemler

Dizi öğelerine erişmek için şu sözdizimini kullanın: ${dizi[dizin]}

fruits=(mango banana apples)
echo${fruits[1]}# output is banana

Bunun yerine dizinin tamamını yazdırmanız gerekiyorsa, @ olarak sembol

dizin ile ilgili ${dizi[dizin]}:

echo${fruits[@]}

Dizideki öğe sayısını bulmak için şunu kullanın: # aşağıda gösterildiği gibi sembol:

echo ${#fruits[1]}

Dizi öğelerini de değiştirmeniz gerekebilir; bunun nasıl yapılacağı hakkında aşağıdaki örneğe bakın. Yeni bir öğeyi nasıl eklediğinize benzer. Tek fark, bir değeri zaten bir değere sahip olan bir dizinle değiştirmenizdir.

fruits[1]=pears

İlişkisel Diziler

Anahtarları rastgele değerlere sahip olan bir diziye ilişkisel dizi denir. Bu diziler ilgili anahtar/değer çiftlerini depolamak için kullanılır.

İlgili: Bash Komut Dosyalarını AppleScript Kullanarak Tıklanabilir Uygulamalara Dönüştürme

İlişkisel bir dizi tanımlamak için bunu anahtar kelimeyi kullanarak açıkça yapmanız gerekir. ilan etmek.

# associative array called animal
declare -A animal
animal[giraffe]=tall
animal[lion]=brave
animal[cheetah]=fast

Bir üye öğeye, dizine alınmış dizilerle aynı şekilde erişebilirsiniz:

echo${animal[lion]}

Tüm değerlerin çıktısını almak isterseniz, @ aşağıda gösterildiği gibi sembol:

echo${animal[@]}

Tüm dizi anahtarlarını yazdırmak istiyorsanız, @ Ve ! aşağıda gösterildiği gibi semboller:

echo${!animal[@]}

İlişkisel dizinin sahip olduğu öğe sayısını bulmak için, dizine alınmış dizilerle kullandığınız sözdiziminin aynısını kullanın (son bölümde gösterilmiştir).

Bir dizi öğesini veya dizinin tamamını silmek istiyorsanız aşağıdaki sözdizimini kullanın:

unset arrayName[Key] # delete array item
unset arrayName # delete entire array

printf Komutunu Kullanmak

Bu makalenin tamamının kullandığını fark etmiş olabilirsiniz. Eko Verilerin kabuğa gönderilmesini sağlayan komut. Eko komutu bu öğretici için çalışır ancak dize biçimlendirmesi söz konusu olduğunda çok az özelliğe ve esnekliğe sahiptir.

Ancak baskı command, Bash komut dosyası oluşturmayı kolaylaştıran daha spesifik biçimlendirme seçenekleri sunar. Öğrenmek baskı işlevi kesinlikle Bash'teki dize biçimlendirme deneyiminizi ve verimliliğinizi artıracaktır.