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.