Bash 'Until' Döngüsü: Öğretici ve Örnekler

Bir Bash betiğinde komut(lar) üzerinde döngü yapmak için 'until' döngüsünü kullanma.

Bash (Bourne Again Shell), GNU/Linux işletim sistemlerinde bir kabuk komut istemi ve betik dilidir. Çoğu Linux dağıtımı için varsayılan kabuktur.

Çoğu betik dili gibi Bash, benzer görevleri birden çok kez tekrarlamak için döngü sözdizimleri sağlar. Bu yazımızda nasıl kullanılacağını öğreneceğiz. a kadar Bash'de döngü.

Tanıtım

bu a kadar Bash'deki döngü, başka bir komutun (koşul komutlarının) çıktısına bağlı olarak komutları (yürütülen komutları) birden çok kez yürütmek için kullanılır. Yürütülen komutlar, koşul komutu başarısız olmaya devam edene kadar çalışmaya devam eder (yani, sıfır olmayan bir durum döndürür. Linux'taki herhangi bir komut, başarı için 0 ve başarısızlık için sıfır olmayan bir tamsayı döndürür). Bu tam tersi sırasında koşul komutu başarılı olana kadar yürütülen komutların çalışmaya devam ettiği döngü.

Birden çok koşul komutu varsa, ifade yalnızca listedeki son komutun durumunu dikkate alır, yani döngü, listedeki son komut başarısız olmaya devam edene kadar çalışır.

Genel Sözdizimi

için genel sözdizimi a kadar Bash'deki döngü:

bitene kadar

Yürütme komut listesi, koşul komut listesindeki son komut başarısız olana kadar çalışacaktır. Son komut başarılı olduğunda, döngüden çıkar.

Kullanıcılar, komut listelerinde herhangi bir yürütülebilir dosyayı belirtebilir. Standart Linux programları veya özel kullanıcı programları veya komut dosyaları olabilir. Her komut ya yeni bir satırda olmalı ya da aynı satırda noktalı virgülle ayrılmalıdır.

Birkaç örnek görelim.

Bir değişken belirli bir değere sahip olana kadar döngü: Aşağıdaki döngü, değişkenin değerine kadar yürütülür. x 10'dur.

x=0 [[ $x -eq 10 ]] eko $x ((x++)) yapılana kadar

Her yinelemede, x'in değerinin 10 olup olmadığını kontrol ediyoruz. Değer, kullanılarak kontrol ediliyor. Ölçek emretmek. [[ İfade ]] test komutunun sözdizimidir (Bkz. adam testi).

sonra içinde yap...bitti blok, sadece x'in değerini yazdırır ve artırırız. Döngü, koşul komutu başarılı olduğunda, yani $x eşittir 10.

Not: 'until' döngüsünde kullanılacak indeks değişkeni, bir değişkeni dolaylı olarak başlatmayı sağlayan for döngüsünün aksine, 'until' döngüsünden önce veya koşul komutlarında başlatılmalıdır.

Çoklu koşul komutlarıyla: Aşağıdaki döngü adlı 5 dizin oluşturur yön0, yön1, ... yön4.

z=0 kadar echo "Merhaba" echo "Görüşürüz" [[ $z -eq 5 ]] do echo "dir$z oluşturuluyor..." mkdir dir$z ((z++)) yapıldı

İlk komutlar "Merhaba" yankısı ve "Güle güle" yankısı bir kez tamamen yürütülür; başarılarının veya başarısızlıklarının, döngünün ne kadar süreceği üzerinde hiçbir etkisi yoktur.

Ardından, z değişkeninin değerini kontrol etmek için test komutu yürütülür. Bu komut başarısız olmaya devam edene kadar, yani z'nin değeri 5 olana kadar, koşul komutları ve yürütülen komutlar sırayla çalışmaya devam eder. Burada, her yineleme için, önce 2 eko komutunu koşulda çalıştıracak ve ardından z değeri için 3. koşul komutu kontrollerini yapacaktır. 5 değilse döngüye girer ve verilen komutları yürütür.

Ara ve Devam Et

Koşullu Çıkış için Break İfadesi

Koşullu ifadeyi de kullanabiliriz Eğer döngü içinde. bu Eğer ifadesi ile kullanılabilir kırmak döngüden koşullu çıkış için bir ifade.

x=0 [[ $x -eq 10 ]], [[ $x -eq 5 ]] break fi echo $x ((x++)) yapıldıysa yap

Yukarıdakiye kadar döngü 0'dan 4'e kadar olan sayıları yazdıracaktır. Ardından i'nin değeri 5 olduğunda, döngüden ayrılacaktır. Bu, bir komut belirli bir çıktı verdiğinde bir döngüden çıkılacağı zaman özellikle kullanışlıdır.

Bir Yinelemeyi Koşullu Olarak Atlamak için İfadeye Devam Et

Bash'in ayrıca bir devam et Belirli bir koşul karşılanırsa, bir döngüdeki yinelemenin kalan kısmını atlamak için ifade.

x=0 [[ $x -eq 10 ]] yap, eğer [[ $x -eq 5 ]] devam et fi echo $x ((x++)) yapıldıysa

Yukarıdaki döngü, 5 dışında 0'dan 10'a kadar olan sayıları yazdıracaktır, çünkü yineleme sırasında x=5 yineleme ile başlangıçta döngüdeki kodun geri kalanını atlayacak bir devam ifadesi vardır. x=6.

Döngüleri Kullanma: Komut Dosyaları ve Komut Satırı

Döngü sözdizimleri, Bash kabuğunda doğrudan veya yürütülebilir bir kabuk komut dosyasından kullanılabilir. Benzer için ve sırasında döngüler, bir kez a kadar kabuğa döngü sözdizimi girilirse, kabuk, kullanıcının döngülenecek komutları sürdürmesine izin vermek için komut istemini sürdürür.

Veya kullanıcı bunu bir komut dosyasına kaydedebilir ve komut dosyasını çalıştırabilir.

bu #!/bin/bash başlangıçta dosya yürütüldüğünde kullanılacak yorumlayıcıyı belirtir. Bash, günümüzde en yaygın kullanılan kabuk olmasına rağmen, bazı kullanıcılar aşağıdaki gibi kabukları tercih eder: zsh, bu dosyanın başında bash yerine belirtilmelidir.

Yürütme izinleri vermek için bu dosya için şunu çalıştırın:

chmod +x testi.sh

Nihayet, dosyayı yürütmek için, Çalıştırmak:

./test.sh

Çözüm

bu a kadar Döngü, Bash komut dosyasında bir başka önemli özelliktir. Karmaşık komut dosyalarında, belirli bir program kümesinin başarısızlık durumu döndürmesi beklendiğinde ve başarısızlığı günlüğe kaydetmek, hatayı ayrıntılı olarak görüntülemek veya yalnızca bazı alternatif programları yürütmek için bazı başka komut(lar)ın yürütülmesi özellikle önemlidir.