Bash vs Python для DevOps инженеров и системных администраторов
İçindekiler:
- Döngü için Standart Bash
- Dizgiler üzerinden döngü
- Bir sayı aralığında döngü
- Dizi öğelerinin üzerinde döngü
- Döngü için C tarzı Bash
- Break and Continue İfadeleri
- Break Bildirimi
- Bildirime Devam Et
- Döngü İçin Bash Örnekleri
- Dosya adında boşluk bulunan dosyaları yeniden adlandırma
- Dosya uzantısını değiştirme
- Sonuç
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 terminaliOlimpiyat Baş üzerinde 'hayır Deal': Çin Net Sansür 'hayır Deal'
IOC Başkanı Jacques Rogge, sansüre izin için Pekin Olimpiyat yetkilileri ile bir anlaşma yapıldığını yalanladı oyunlar sırasında internetin.
Comcast, Time Warner Daha Online Video için Bas
Comcast ve Time Warner, çevrimiçi olarak daha fazla video programlaması yapmak için bir inisiyatif oluşturuyor ücretsiz, aboneler için TV hizmetlerini ödemek için.
Sidewiki: Google İçin Bir Büyük Baş Ağrısı
Yeni çevrimiçi yorum sistemi, Google için bile yönetilmesi zor olabilir.







