Perhatikan bahwa sintaksis diwarisi dari shell Bourne.
Setelah nama variabel, Anda dapat memiliki in
daftar elemen yang diberikan secara eksplisit, atau do
, untuk mengulang parameter posisi.
for i in 1 2 3
do
echo "$i"
done
Atau
set 1 2 3
for i do
echo "$i"
done
Memiliki do
dalam kedua kasus (bahkan jika itu tidak sepenuhnya diperlukan dalam yang pertama) membuat sintaks yang lebih konsisten. Ini juga konsisten dengan while
/ until
loop di mana do
diperlukan.
while
cmd1
cmd2
do
cmd3
cmd4
done
Anda perlu do
mengetahui di mana daftar perintah kondisi berakhir.
Perhatikan bahwa shell Bourne tidak mendukung for i; do
. Sintaks itu juga tidak POSIX sampai edisi 2016 standar ( for i do
selalu POSIX; lihat bug grup Austin terkait ).
zsh
memiliki beberapa bentuk steno seperti:
for i in 1 2 3; echo $i
for i (1 2 3) echo $i
for ((i=1;i<=3;i++)) echo $i
Atau dukungan untuk lebih dari satu variabel:
for i j (1 a 2 b) echo $i $j
(meskipun Anda tidak dapat menggunakan in
atau do
sebagai nama variabel di tempat di j
atas).
Meskipun jarang didokumentasikan, sebagian besar shell mirip Bourne (Bourne, ksh, bash, zsh, tidak ash
juga yash
) juga mendukung:
for i in 1 2 3; { echo "$i";}
Shell Bourne, ksh
dan zsh
(tetapi tidak bash
) juga mendukung:
for i { echo "$i"; }
Sementara bash
, ksh
dan zsh
(tetapi bukan shell Bourne) mendukung:
for i; { echo "$i"; }
Semua (Bourne, bash
, ksh
, zsh
) dukungan:
for i
{ echo "$i";}
ksh93
, bash
, zsh
Dukungan:
for ((i=1;i<=3;i++)) { echo "$i"; }