Bu sözdiziminin Bourne kabuğundan miras kaldığını unutmayın.
Değişken adından sonra, in
açıkça verilen öğelerin listesine sahip olabilirsiniz veya do
konumsal 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 do
iki durumda da (ilkinde kesinlikle gerekmese bile) sahip olmak daha tutarlı bir sözdizimi sağlar. Ayrıca , gerektiğinde while
/ until
döngülerle de uyumludur do
.
while
cmd1
cmd2
do
cmd3
cmd4
done
Koşul komutları do
listesinin 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 do
her 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 in
veya kullanamazsınız ).do
j
Nadiren belgelenmiş olsa bile, çoğu Bourne benzeri kabukları (Bourne, ksh, bash, zsh, ash
ne de yash
) desteklemektedir:
for i in 1 2 3; { echo "$i";}
Bourne kabuğu ksh
ve zsh
(ancak bash
) desteklenmez:
for i { echo "$i"; }
İken bash
, ksh
ve 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
, zsh
Desteği:
for ((i=1;i<=3;i++)) { echo "$i"; }