forin 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 $IFSBourne ve ksh88'de boşluk karakteri içermiyorsa) veya Bu nounsetseçenek etkindir ve $#dahil bazı mermilerin bazı versiyonlarında 0'dır bash( tekrar ${1+"$@"}çalışma halinde ).