Sözdizimi:
while
first list of commands
do
second list of commands
done
Bu, ikinci komut listesini, ilk komut listesi (bu listedeki son çalıştırma) başarılı olduğu sürece döngü içerisinde çalıştırır.
Bu ilk komut listesinde,[ çeşitli testler yapmak için bu komutu kullanabilir ya da :hiçbir şey yapmayan ve başarı döndüren null komutunu ya da başka bir komutu kullanabilirsiniz.
while :; do cmd; done
Her zaman başarıyı döndürdüğü cmdgibi sonsuza dek tekrar tekrar koşar :. Bu sonsuza kadar döngü. Bu truekomutu daha okunaklı hale getirmek için yerine kullanabilirsiniz :
while true; do cmd; done
İnsanlar uzun zaman önce (uzun zaman önce; çoğu kabukları günümüzde yerleşiktir) yapılmadığı zamanlarda her zaman :olduğu gibi tercih ederlerdi.:truetrue
Görebileceğiniz diğer türevleri:
while [ 1 ]; do cmd; done
Yukarıda, ["1" dizesinin boş olmadığını kontrol etmek için komut çağırıyoruz (yani her zaman da doğru)
while ((1)); do cmd; done
C'yi ((...))taklit etmek için Korn / bash / zsh sözdizimini kullanmawhile(1) { ...; }
Ya da daha dolambaçlı olanlar gibi until false; do cmd; done, until ! true...
Bunlar bazen şöyle adlandırılır:
alias forever='while :; do'
Böylece şöyle bir şey yapabilirsiniz:
forever cmd; done
Çok az insan, durumun bir emir listesi olduğunu fark eder . Örneğin, insanların yazdığını görüyorsunuz:
while :; do
cmd1
cmd2 || break
cmd3
done
Ne zaman yazmış olabilirler:
while
cmd1
cmd2
do
cmd3
done
Komut listeleri gibi bir şeyler yapmak istediğinizde bir liste olması mantıklı geliyor while cmd1 && cmd2; do...; done.
Her durumda, [diğerine benzer bir komut olduğunu unutmayın (modern Bourne benzeri mermilerde yerleşik olmasına rağmen), yalnızca if/ while/ untildurum listelerinde kullanılmasına gerek yoktur ve bu koşul listelerinde kullanılmaz. bu komutu diğer komutlardan daha fazla kullanmak için.
¹ :ayrıca daha kısadır ve argümanları kabul eder (ki bu dikkate almaz). Davranış trueveya davranış falsebelirtilmezken herhangi bir argümanı geçerseniz. Yani biri örneğin yapabilir:
while : you wait; do
something
done
Ancak, davranışı:
until false is true; do
something
done
belirtilmemiş (çoğu kabuk / falseuygulamada işe yarayacak olsa da ).
:hiçbir şey yapmaz, ancak her zaman dönüş kodu 0 ile çıkar. Yani, aynıydıwhile true(sisteminizintrueçalıştırılabilir olduğunu varsayarsak ).