Programlama veya komut dosyası oluşturmada döngü, en temel ve güçlü kavramlardan biridir. Belirtilen koşullar karşılanana kadar bir döngü belirli görevleri gerçekleştiriyor. Her programlama veya betik dili, konsepti uygulamanın farklı yollarına sahiptir.
Bu kılavuzda, bash komut dosyası oluşturmada iç içe döngüye göz atın.
iç içe döngü
Tanım olarak bir döngü, koşullar karşılanana kadar belirli görevleri yerine getirir. Görev bir döngü çalıştırmayı içeriyorsa ne olur?? Bu iç içe döngü kavramıdır. Döngü içinde döngü.
Bu bir döngünün temel yapısıdır.
while (koşul)# bir şey
Burada while döngüsü, koşul karşılandığı sürece blok içinde bildirilen görevleri gerçekleştirmeye devam edecektir. İç içe bir while döngüsü olması durumunda, yapı şöyle görünür:.
# Ana döngüwhile (koşul)
# iç içe döngü
while(koşul)
# bir şey
Teoride, iç içe döngüler sonsuz derinliğe gidebilir. Birçok durumda iç içe döngüler mükemmel bir çözüm olabilir.
Bash betiğinde döngü
Bash güçlü bir betik dilidir. Bash'de farklı döngü yapıları var. En popüler olanlar for, while ve while döngüleridir. Daha önce C/C++ programlamaya aşina iseniz, sözdizimi kesinlikle oldukça benzer görünecektir.
döngüler için
For döngüsü, en yaygın ve çok yönlü form çıktılarından biridir. Bash komut dosyasında döngülerin yapısı. Yapı ayrıca C/C++'daki for döngüsüne çok benziyor.
Bash'deki for döngüsünün yapısı aşağıdaki gibidir.
for ((başlat ; koşul ; artış)); yapmak# bir şey
bitti
Yapısı çok açıklayıcı. Başlatma bölümü zorunlu değil. Ancak, koşul ve artış daha yüksek önceliklidir.
Hadi harekete geçirelim. İşte for döngüsü uygulayan çok basit bir bash betiği.
için ((i = 0 ; ben < 5 ; i++)); doyankı "merhaba dünya"
bitti
Döngü koşulu olarak liste/aralık kullanmak da mümkündür. Özellikle bir dosya listesi, sayı aralıkları, diziler, komut çıktıları vb. ile çalışıyorsanız kullanışlıdır. Yapısı şuna benziyor.
öğe için- ; yapmak
- Bash sonsuz döngü
- Bash komut dosyası kullanıcı girişi
- Bash işlevi dizi döndürüyor
# bir şey
bitti
Örneğin, aşağıdaki komut dosyası beş kez "merhaba dünya" yazacaktır.
i için 1… 5; yapmakyankı "merhaba dünya"
bitti
Bir dizinin içeriğiyle çalışmamız gerekirse ne olur?? Aşağıdaki örnekte, komut dosyası /usr/bin dizinindeki tüm dosyaları yazdıracaktır.
/usr/bin/* içindeki i için; yapmakyankı $i
bitti
Şimdi, iç içe bir for döngüsüne sahip olmak için ne yapıyoruz?? Bu sadece bir for döngüsü içinde diğerinin içinde. İşte önceki örneği kullanarak iç içe bir for döngüsü.
için ((i = 0 ; ben < 3 ; i++)); dofor((j = 0 ; j < 2 ; j++)); do
yankı "merhaba dünya"
bitti
bitti
Çıktı 6 kez “merhaba dünya” olacak. Dış döngü üç kez çalışacak, iç döngü iki kez çalışacak.
Döngüler sırasında
while döngüsü, bash komut dosyası oluşturmada kullanılabilen başka bir popüler ve sezgisel döngüdür. Sözdizimi şöyle görünüyor.
süre# bir şey
bitti
Aşağıdaki örnekte, komut dosyası beş kez "merhaba dünya" yazacaktır.
sayı=1while [ $num -le 5 ]; yapmak
yankı "merhaba dünya"
sayı=$(($sayı+1))
bitti
Yuvalanmış bir while döngüsüne sahip olmak nasıl görünürdü?? İşte basit bir örnek.
sayı_a=1say_b=1
while [ $num_a -le 5 ]; yapmak
while [ $num_b -le 5 ]; yapmak
yankı "merhaba dünya"
sayı_b=$(($sayı_b+1))
bitti
sayı_a=$(($sayı_a+1))
bitti
Döngülere kadar
C/C++'da bir programlama geçmişiniz varsa, do-while döngüsüne aşinasınızdır. Ne yazık ki, bash böyle bir şeye sahip değil. Ancak, döngü benzer şekilde çalışana kadar. Sözdizimi de oldukça aynı görünüyor.
a kadar [# bir şey
bitti
Döngü ile while arasındaki fark, test koşuludur. Test koşulu doğru olduğu sürece bir while döngüsü çalışmaya devam edecektir. Ancak bir kadar döngüsü, yalnızca koşul yanlışsa çalışmaya devam eder.
İşte while döngüsünün hızlı bir örneği. 2'nin çarpım tablosunu yazdıracak.
sayı_a=1[ $num_a -gt 10 ]'a kadar; yapmak
yankı $(($num_a * 2))
sayı_a=$(($sayı_a+1))
bitti
döngü sonu
Belirli durumlarda, belirli koşullar karşılanırsa, döngünün geri kalanını çalıştırmak gereksiz hale gelir. Döngü sonları, belirli bir koşulda döngüden ayrılmaya izin veren ilginç bir özelliktir. Döngüler ne kadar yüksek olursa, kaynak tüketimi ve verimsizlik o kadar fazla olduğundan, iç içe döngüler için daha önemlidir.
Burada, aşağıdaki for döngüsü, koşula ulaşır ulaşmaz çalışmayı durduracaktır.
için ((i=1;i<=100;i++)); doyankı $i
eğer [ $i -eq 10 ]; sonra
kırmak
fi
bitti
Döngü sonlarının ayrıntılı açıklaması ve gösterimi için while döngüsünün nasıl kesileceğini inceleyin.
Son düşünceler
İç içe döngü, anlamak ve uygulamak için basit ve güçlü bir kavramdır. Umarım, bu kılavuz konsepti tanımlayabilmiş ve gösterebilmiştir.
Daha fazla bash komut dosyası kılavuzuyla ilgileniyor? Aşağıdaki kılavuzlara göz atın.
Mutlu bilgisayar!