
Bilinmesi gereken
- Bash In a Bash için döngü, arasındaki tüm ifadeler yapmak ve bitti liste veya sayı aralığındaki her öğe için bir kez gerçekleştirilir.
- Büyük bir liste ile kullanın içinde Başlangıç ve bitiş noktası arasında döngü yapmak için {list}. Tam bir sayı aralığını yinelemek için üç nokta kullanın, ör. {1..10} içindeki numara için.
- Belirli sayıları atlamak için aralığa üçüncü bir sayı ekleyin. Örneğin, şunu kullanın {0..100..10} her 10’uncu sayıyı listelemek için.
Bir programlama veya komut dosyası dilinde Bash, kodu tekrarlamak için birkaç yol sunar – döngü adı verilen bir işlem – burada bir için döngü kodun belirli bir bölümünü tekrarlar. Bu, belirli bir koşul karşılanana kadar bir dizi komutun çalışmasına izin verir. Bu kılavuzda, size nasıl Bash yazılacağını gösteriyoruz için Döngü.
Bir Listede Nasıl Dönülür
Bash gibi komut dosyası dilleri, diğer dillerle benzer programlama yapılarına sahiptir. Örneğin, içe aktarım parametreleri klavyeden girdi alır ve bu girdileri değişkenler olarak saklar ve daha sonra giriş parametrelerinin değerine bağlı olarak belirli bir eylem gerçekleştirir. Başlıklı basit bir örnek komut dosyasını düşünün loop.sh: #! / bin / bash
1 2 3 4 5’teki numara için
yapmak
echo $ number
bitti
çıkış 0
Bash kullanım şekli için döngüler, diğer programlama ve komut dosyası dillerinin işleme biçiminden biraz farklıdır. için döngüler. Senaryoyu parçalayalım. BASH olarak için döngü, arasındaki tüm ifadeler yapmak ve bitti listedeki her öğe için bir kez gerçekleştirilir. Bu örnekte liste, kelimesinden sonra gelen her şeydir. içinde-sayılar 1 2 3 4 5. Döngü her yinelendiğinde, listedeki bir sonraki değer, sözcükten sonra belirtilen değişkene eklenir. için. Yukarıdaki döngüde değişken denir numara. Echo ifadesi ekrana bilgi görüntüler. Bu nedenle, bu örnek 1’den 5’e kadar olan sayıları alır ve her bir sayıyı tek tek ekrana çıkarır:
Başlangıç ve Bitiş Noktaları Arasında Nasıl Dönülür
Bu loop.sh betiğiyle ilgili sorun, daha büyük bir listeyi işlemek istiyorsanız (örneğin, 1’den 500’e kadar), tüm sayıları yazmanın yaş almasıdır. Bunun yerine, bir başlangıç ve bitiş noktası belirtin: #! / Bin / bash
{1..10} içindeki numara için
yapmak
echo “$ numara”
bitti
çıkış 0
Kurallar aynı. Kelimeden sonraki değerler içinde yinelenecek listeyi oluşturun ve listedeki her değer değişkene (yani sayı) yerleştirilir ve döngü her yinelendiğinde, aradaki ifadeler yapmak ve bitti gerçekleştirilir. Temel fark, listenin oluşturulma şeklidir. Küme parantezleri bir aralığı belirtir ve bu durumda aralık, 1 ila 10’dur (iki nokta, bir aralığın başlangıcını ve sonunu ayırır). Bu örnek, bu nedenle, 1 ile 10 arasındaki her bir sayı üzerinden çalışır ve sayıyı ekrana çıkarır. Aynı döngü, ilk örnekle aynı sözdizimi ile şu şekilde yazılabilirdi: 1 2 3 4 5 6 7 8 9 10’daki sayı için
Bir Aralıktaki Sayıları Atlama
Önceki örnek, bir başlangıç ve bitiş noktası arasında nasıl döngü yapılacağını gösterdi. Aralıktaki sayıları nasıl atlayacağınız aşağıda açıklanmıştır. Örneğin, 0 ile 100 arasında döngü yapmak, ancak yalnızca her onuncu sayıyı göstermek için, bu çıktıyı elde etmek için aşağıdaki komut dosyasını kullanın: #! / Bin / bash
{0..100..10} içindeki numara için
yapmak
echo “$ numara”
bitti
çıkış 0
Kurallar aynı. Bir liste, bir değişken ve aralarında gerçekleştirilecek bir dizi ifade vardır. yapmak ve bitti. Bu seferki liste şuna benziyor: {0..100..10}. İlk sayı 0 ve bitiş numarası 100’dür. Üçüncü sayı (10) listedeki atlayacağı öğe sayısıdır. Yukarıdaki örnek, bu nedenle, aşağıdaki çıktıyı görüntüler:
Pratik Bir Örnek
Döngüler için, sayı listelerini yinelemekten daha fazlasını yapın. Örneğin, liste olarak diğer komutların çıktısını kullanın. Aşağıdaki örnek, ses dosyalarının MP3’ten WAV’a nasıl dönüştürüleceğini gösterir: #! / Bin / bash
./*.mp3 dosyasındaki dosya için
yapmak
mpg -w ./wavs/”${file}”.wav “$ dosya”
bitti
Bu örnekteki liste, geçerli klasördeki .MP3 uzantılı her dosyadır ve değişken bir dosyadır. Mpg komutu MP3 dosyasını WAV’a dönüştürür. Ancak, muhtemelen önce bir paket yöneticisi kullanarak bu aracı yüklemeniz gerekir.