Android

Döngü için bas

Bash vs Python для DevOps инженеров и системных администраторов

Bash vs Python для DevOps инженеров и системных администраторов

İçindekiler:

Anonim

Döngüler programlama dillerinin temel kavramlarından biridir. Belirli bir koşula ulaşılana kadar bir dizi komutu tekrar tekrar çalıştırmak istediğinizde döngüler kullanışlıdır.

Bash gibi komut dosyası dillerinde, döngüler tekrarlanan görevleri otomatikleştirmek için kullanışlıdır.

Bash komut dosyasında, döngü, while döngüsü ve loop'a kadar üç temel döngü yapısı vardır.

Bu derste, Bash'teki döngülerin temellerini ele alacağız. Bir döngü akışını değiştirmek için break ve continue ifadelerini nasıl kullanacağınızı da göstereceğiz.

Döngü için Standart Bash

For döngüsü bir öğe listesi üzerinde yinelenir ve verilen komut kümesini gerçekleştirir.

Bash for loop aşağıdaki formu alır:

for item in do done

Liste boşluklarla ayrılmış bir dizi dizgi, bir sayı aralığı, bir komutun çıkışı, bir dizi vb. Olabilir.

Dizgiler üzerinden döngü

Aşağıdaki örnekte döngü, dizeler listesindeki her öğe üzerinde yinelenecek ve değişken element geçerli öğeye ayarlanacaktır.

for element in Hydrogen Helium Lithium Beryllium do echo "Element: $element" done

Döngü aşağıdaki çıktıyı üretecektir:

Element: Hydrogen Element: Helium Element: Lithium Element: Beryllium

Bir sayı aralığında döngü

Dizinin bir başlangıç ​​ve bitiş noktasını tanımlayarak bir dizi sayı veya karakter belirtmek için dizi ifadesini kullanabilirsiniz. Dizi ifadesi aşağıdaki formu alır:

{START..END}

Aşağıdaki örnekte, döngü 0 ile 3 arasındaki tüm sayılar arasında yinelenecektir.

for i in {0..3} do echo "Number: $i" done

Number: 0 Number: 1 Number: 2 Number: 3

Bash 4'ten başlayarak, aralıkları kullanırken bir artış belirtmek de mümkündür. İfade aşağıdaki formu alır:

{START..END..INCREMENT}

for i in {0..20..5} do echo "Number: $i" done

Number: 0 Number: 5 Number: 10 Number: 15 Number: 20

Dizi öğelerinin üzerinde döngü

Ayrıca, bir öğe dizisi üzerinde yineleme yapmak için for döngüsünü de kullanabilirsiniz:

Aşağıdaki örnekte, bir BOOKS dizisi tanımlamakta ve dizinin her bir öğesi üzerinde yineliyoruz.

BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby') for book in "${BOOKS}"; do echo "Book: $book" done

Book: In Search of Lost Time Book: Don Quixote Book: Ulysses Book: The Great Gatsby

Döngü için C tarzı Bash

Döngü için C-stilinin sözdizimi aşağıdaki formu alıyor:

for ((INITIALIZATION; TEST; STEP)) do done

INITIALIZATION bölümü, döngü başladığında yalnızca bir kez yürütülür. Ardından TEST kısmı değerlendirilir. Yanlışsa, for döngüsü sonlandırılır. TEST doğruysa, for döngüsü gövdesi içindeki komutlar yürütülür ve STEP kısmı güncellenir.

Aşağıdaki kodda, döngü i = 0 başlatarak, ardından her yinelemeden önce i ≤ 10 olup olmadığını kontrol eder. True olursa, i ve i geçerli değerini 1 ( i++ ) ile yazdırır, aksi takdirde döngü sona erer.

for ((i = 0; i <= 1000; i++)); do echo "Counter: $i" done

Döngü 1001 kez yinelenir ve aşağıdaki çıktıyı üretir:

Counter: 0 Counter: 1 Counter: 2… Counter: 998 Counter: 999 Counter: 1000

Break and Continue İfadeleri

Break ve continue ifadeleri, for döngüsü yürütülmesini kontrol etmek için kullanılabilir.

Break Bildirimi

Break ifadesi geçerli döngüyü sonlandırır ve program denetimini sonlandırılmış ifadeyi izleyen ifadeye iletir. Genellikle belirli bir koşul karşılandığında döngüyü sonlandırmak için kullanılır.

Aşağıdaki örnekte, geçerli yinelenen öğe 'Lityum' değerine eşit olduğunda, döngünün yürütülmesini sonlandırmak için if ifadesini kullanıyoruz.

for element in Hydrogen Helium Lithium Beryllium; do if]; then break fi echo "Element: $element" done echo 'All Done!'

Element: Hydrogen Element: Helium All Done!

Bildirime Devam Et

Continue ifadesi bir döngünün geçerli yinelemesinden çıkar ve program denetimini döngünün bir sonraki yinelemesine geçirir.

Aşağıdaki örnekte, bir dizi sayıyı yineliyoruz ve geçerli yinelenen öğe '2'ye eşit olduğunda, devam ifadesi yürütmenin döngünün başına dönmesine ve bir sonraki yinelemeye devam etmesine neden olacaktır.

for i in {1..5}; do if]; then continue fi echo "Number: $i" done

Number: 1 Number: 3 Number: 4 Number: 5

Döngü İçin Bash Örnekleri

Dosya adında boşluk bulunan dosyaları yeniden adlandırma

Aşağıdaki örnek, boş dizinin yerini alt çizgiye değiştirerek geçerli dizindeki tüm dosyaları adlarında bir boşlukla yeniden adlandırmak için Bash for loop'un nasıl kullanılacağını gösterir.

for file in *\ *; do mv "$file" "${file// /_}" done

Kod satır satır ayrılacak:

  • İlk satır bir for döngüsü oluşturur ve adında boşluk bulunan tüm dosyaların listesi üzerinden yineler. *\ * İfadesi listeyi oluşturur. İkinci satır, listenin her bir öğesi için geçerlidir ve dosyayı, yerine alt çizgi ( _ ) ile değiştirerek yenisine taşır. ${file// /_} bölümü, parametre içindeki bir deseni bir dize ile değiştirmek için shell parametre genişletmesini kullanıyor. done , döngü segmentinin sonunu gösterir.

Dosya uzantısını değiştirme

Aşağıdaki örnek,.jpeg yerine.jpg dosya uzantısını değiştirerek geçerli dizinde.jpeg ile biten tüm dosyaları yeniden adlandırmak için Bash for loop'un nasıl kullanılacağını gösterir.

for file in *.jpeg; do mv -- "$file" "${file%.jpeg}.jpg" done

Kodu satır satır analiz edelim:

  • İlk satır bir for döngüsü oluşturur ve '.jpeg' ile biten tüm dosyaların bir listesi boyunca yinelenir. İkinci satır listenin her bir öğesi için geçerlidir ve dosyayı '.jpeg' yerine '.jpg' ile değiştirerek yenisine taşır.. ${file%.jpeg} yapılan kabuk parametresi genişletmesini kullanarak dosya adından '.jpeg' bölümünü kaldırır döngü segmentinin sonunu gösterir.

Sonuç

Şimdiye kadar, bash for loop'u listeler arasında yinelemek için nasıl kullanacağınızı iyi anlamanız gerekir.

bash loop terminali