for
in value1 value2...
Bourne benzeri mermilerde hiçbir parça belirtilmemişse, döngüler konum parametrelerinde döngü oluşturur .
70'lerin sonlarından itibaren Bourne kabuğundaki durum buydu, ancak Bourne kabuğunda bunu ihmal ;
etmeniz gerekirdi (ayrıca for i do
(daha önce bir yeni hatta ihtiyaç duyduğunuz bazı eski kül versiyonları hariç do
)).
Bkz . Bash'de "do" anahtar sözcüğünün döngüler için amacı nedir? daha şaşırtıcı değişkenler içeren daha fazla bilgi için .
Yapma:
for i
do
something with "$i"
done
iyi bir uygulamadır. Genellikle eşdeğerden biraz daha taşınabilir / güvenilirdir:
for i in "$@"; do
something with "$i"
done
bunun için Bourne kabuğunun ksh88'in bazı koşullar altında bazı sorunları vardır ( $#
Bourne kabuğunun bazı sürümlerinde 0 iken (bunun ${1+"$@"}
yerine "$@"
çalışabilir) veya $IFS
Bourne ve ksh88'de boşluk karakteri içermiyorsa) veya Bu nounset
seçenek etkindir ve $#
dahil bazı mermilerin bazı versiyonlarında 0'dır bash
( tekrar ${1+"$@"}
çalışma halinde ).