Bu sözdiziminin Bourne kabuğundan miras kaldığını unutmayın.
Değişken adından sonra, inaçıkça verilen öğelerin listesine sahip olabilirsiniz veya dokonumsal parametreler üzerinde dolaşmanız gerekebilir .
for i in 1 2 3
do
echo "$i"
done
Veya
set 1 2 3
for i do
echo "$i"
done
Her doiki durumda da (ilkinde kesinlikle gerekmese bile) sahip olmak daha tutarlı bir sözdizimi sağlar. Ayrıca , gerektiğinde while/ untildöngülerle de uyumludur do.
while
cmd1
cmd2
do
cmd3
cmd4
done
Koşul komutları dolistesinin nerede biteceğini söylemeniz gerekir .
Bourne kabuğunun desteklemediğini unutmayın for i; do. Bu sözdizimi, standardın 2016 sayısına kadar POSIX de değildi ( for i doher zaman POSIX olmuştur; ilgili Austin grubu böcekine bakınız ).
zsh gibi birkaç kestirme biçime sahiptir:
for i in 1 2 3; echo $i
for i (1 2 3) echo $i
for ((i=1;i<=3;i++)) echo $i
Veya birden fazla değişken için destek:
for i j (1 a 2 b) echo $i $j
(yine de yukarıdaki yerine değişken kullanamazsınız inveya kullanamazsınız ).doj
Nadiren belgelenmiş olsa bile, çoğu Bourne benzeri kabukları (Bourne, ksh, bash, zsh, ashne de yash) desteklemektedir:
for i in 1 2 3; { echo "$i";}
Bourne kabuğu kshve zsh(ancak bash) desteklenmez:
for i { echo "$i"; }
İken bash, kshve zsh(ancak Bourne kabuğu) desteği:
for i; { echo "$i"; }
Tümü (Bourne, bash, ksh, zsh) desteği:
for i
{ echo "$i";}
ksh93, bash, zshDesteği:
for ((i=1;i<=3;i++)) { echo "$i"; }