BILE WHILE-Loops Nasıl Yazılır

Komutlar, Sözdizimi ve Örnekler

Bir komut dizisini bir komut dosyası dosyasına yazıp çalıştırarak çalıştırabilirsiniz.

Bir komut dosyası, genellikle komut satırından ( kabuk ) çalıştırılabilen bir dizi komut içeren ve genellikle .SH dosya uzantısına sahip bir metin dosyasıdır.

Döngü Örnekleri

Aşağıda bir while döngüsü örneği verilmiştir. Bu komut dosyası yürütüldüğünde, ekranda 1 ile 9 arasındaki sayıları basacaktır. While-statement, sonlandırma koşulu için for döngüsünden daha fazla esneklik sağlar.

# $ / bin / bash sayımı = 1 iken [$ count -le 9] echo "$ sayımı" uyku 1 ((sayma ++)) bitti

Örneğin, önceki betiği sonsuzluk döngüsünü "((say ++)) ifadesini atlayarak yapabilirsiniz":

# $ / bin / bash sayısı = 1 iken [$ count -le 9] echo "$ sayımı" uykusu 1 yapılır

"Uyku 1" ifadesi, yürütmeyi her yinelemede 1 saniye duraklatır. İşlemi sonlandırmak için Ctrl + C klavye kısayolunu kullanın.

Ayrıca, iki nokta üst üste işaret ederek sonsuz bir döngü oluşturabilirsiniz:

#! / bin / bash count = 1 iken: echo "$ count" uyku 1 ((sayma ++)) tamamlandı

While döngüsünde birden fazla koşul kullanmak için, çift köşeli ayraç notasyonu kullanmanız gerekir:

[$ count == 5]; daha sonra $ done = 1 fi tamamlandı

Bu komut dosyasında, "done" değişkeni 0 olarak başlatılır ve sayım 5'e ulaştığında 1'e ayarlanır. Döngü koşulu, while sayısının "count" değeri dokuzdan küçük olduğu sürece devam edeceğini ve "done" öğesinin eşit olduğunu belirtir. sıfıra Bu nedenle, sayılar 5'e eşit olduğunda döngüler çıkar.

"&&" mantıksal "ve" ve "||" anlamına gelir. mantıksal "veya" anlamına gelir.

Koşullardaki "ve" ve "veya" bağlaçları için alternatif bir işaret, tek köşeli parantezlerle "-a" ve "-o" dır. Yukarıdaki durum:

[[$ count -le 9] ve& [$ done == 0]]

... şu şekilde yeniden yazılabilir:

[$ count -le 9] -a [$ done == 0]

Bir metin dosyasını okumak genellikle bir while döngüsü ile yapılır. Aşağıdaki örnekte, bash betiği içerik satırını "inventory.txt:" adlı bir dosyaya göre okur.

FILE = envanter.txt exec 6

İlk satır, giriş dosya ismini "FILE" değişkenine atar. İkinci satır, "6" dosya tanıtıcısındaki "standart giriş" değerini kaydeder (3 ile 9 arasında herhangi bir değer olabilir). Bu, "standart giriş" komut dosyasının sonunda "0" dosya tanıtıcısına geri yüklenebilecek şekilde yapılır ("exec 0" ifadesine bakın. 3. satırda giriş dosyası "0" dosya tanıtıcısına atanır. Standart girdi için "read" ifadesi, her yineleme üzerindeki dosyadan bir satır okur ve bunu "line1" değişkenine atar.

Bir while döngüsünden erken çıkmak için, break deyimini şu şekilde kullanabilirsiniz:

count = 1 done = 0 iken [$ count -le 9] echo "$ sayım" uyduruyor 1 ((sayım ++)) eğer [$ count == 5] sonra fi bit yap

Break deyimi, döngü sırasında program yürütmeyi sonlandırır ve onu izleyen tüm ifadeleri yürütür. Bu durumda, "echo Bitmiş" ifadesi.

Öte yandan, devam ifadesi, yalnızca mevcut yinelemenin while döngüsü deyiminin kalanını atlar ve doğrudan bir sonraki yinelemeye atlar:

count = 1 done = 0 iken [$ count -le 9] uyku 1 ((++ sayımı)) eğer [$ count == 5] ise devam ederse "$ count" işleminin devamı echo Bitti

Bu durumda "sayım" ifadesi "sayım" değişkeni 5'e ulaştığında yürütülür. Bu, sonraki yinelemenin (yankı "$ sayımı") bu yinelemede ("sayım" değeri 5 olduğunda) gerçekleştirilmediği anlamına gelir.