mavzermete 1
mavzermete
Fethi Polat 1
Fethi Polat
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Scarlet 1
Scarlet
xranzei 1
xranzei
Hikaye Ekle

Altın Konu Bash Komut Dosyasında Dizilerin Kullanımı

  • Konuyu başlatan Konuyu başlatan ByMoDuS
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 2
  • Görüntüleme Görüntüleme 199

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Web.png

Bash Komut Dosyasında Dizilerin Kullanımı

Bash Dizilerinin Temel Söz Dizimi

Bash'de bir dizi oluşturmak basittir. Tüm bir diziyi parantez kullanarak başlatabilirsiniz.
city=(London Paris Milan "New York")

Bu, 0'dan 3'e kadar indekslenmiş dört eleman içeren bir dizi oluşturur.

Dördüncü değerin, iki kelimeden oluşan, tırnak içine alınmış bir dize olduğuna dikkat edin.

Ayrı değerler olmadıklarını netleştirmek için boşluk içeren değerleri alıntılamanız gerekir.

Programlama dillerinde yaygın olan köşeli ayraç sözdizimini kullanarak tek bir öğeye erişebilirsiniz:


Bu bash olduğundan, değeri bir ifadede gerçekten kullanmak için birkaç iyileştirmeye ihtiyacınız olacak:

Değişken adının başına dolar işaretini ( $ ) eklemeniz gerekir.

Değişken adının açık olması için ayraçlar ( {} ) kullanmanız da gerekir.

Varsayılan olarak bash, $city[2] adlı bir değişken olarak ele alır.

City Bash'e parantezleri ve dizin numarasını da değerlendirmesini söylemek için parantez ekleyin.

Standart bash dizisi erişim sözdizimi şu şekildedir:

${variable_name[index]}

ÖRNEK;
#!/bin/bash

city=(London Paris Milan "New York")
echo ${city[3]}

# New York

Bir diziyi bir kerede başlatmak yerine, ona adım adım atayabilirsiniz. Bu komut dosyası, önceki örneğin daha uzun bir eşdeğeridir:
#!/bin/bash

city[0]=London
city[1]=Paris
city[2]=Milan
city[3]="New York"
echo ${city[3]}

# New York

Bash Dizileri için Daha Fazla Kullanım

Diziler, ilgili verileri depolamak için mükemmeldir
#!/bin/bash

sqrt[1]=1
sqrt[4]=2
sqrt[9]=3
sqrt[16]=4
sqrt[25]=5

echo ${sqrt[$1]}

Komut dosyasının dizi dizini olarak $1 değerini kullandığını unutmayın.

$1 betiğin aldığı ilk komut satırı argümanını temsil eder, böylece bu betiği şu şekilde çalıştırabilirsiniz:

$ ./sqrt.sh 9
3

Bir komutu yürütmek ve çıktısını bir değişkene kaydetmek için $(cmd) sözdiziminin farkında olabilirsiniz .

Çalışmak üzere bir dizi dosya elde etmek için bunu dizi başlatma sözdizimi ile birleştirebilirsiniz:

arr=( $(ls) )

Bir dizi genellikle yineleme için mükemmel bir veri yapısıdır ve Bash istisna değildir.

Her öğeyi yazdırmak veya her üye üzerinde bir işlem gerçekleştirmek için bir dizide dolaşabilirsiniz.

İçeriğini yinelemek için for .. in döngüsündeki bir diziyi adresleyebilirsiniz.

Örneğin, arr dizisindeki her dosyadaki satır sayısını yazdıran basit bir döngü :

for file in "${arr[@]}"; do
wc -l "$file"
done

# 3 envvars
# 547 httpd.conf
# ...

Daha Fazla Bash Dizi Sözdizimi

Aşağıdakileri kullanarak bir dizideki öğelerin sayısını alabilirsiniz:
echo ${#city[@]}

# 4

Aşağıdaki gibi standart bir dizinin sonuna yeni bir öğe ekleyebilirsiniz:

Yani listeye beşinci bir şehir eklemek için:
city+=(Rome)
echo ${city[@]}

# London Paris Milan New York Rome

Bir dizinin bir parçasını çıkarmak için, diğer birçok dilin dilim işlemine yaklaşan bir sözdizimi kullanabilirsiniz:
${arr[@]:s:n}

Bu sözdizimi, dizinin s konumundan başlayan ve n öğe içeren bir dilimini döndürür.

.s öğesinden listenin sonuna kadar tüm öğeleri çıkarmak için :n bölümünü atlayabilirsiniz .

echo ${city[@]:2:2}
# Milan New York

echo ${city[@]:3}
# New York Rome
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst