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!
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:
city[2]
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:
arr+=(4)
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)
Benzer konular
- Cevaplar
- 2
- Görüntüleme
- 53
- Cevaplar
- 1
- Görüntüleme
- 33
- Sabit
- Cevaplar
- 4
- Görüntüleme
- 275

