for
loop loop pada parameter posisi jika tidak ada in value1 value2...
bagian yang ditentukan dalam semua shell Bourne-like.
Itu sudah menjadi kasus di shell Bourne dari akhir 70-an, meskipun dalam shell Bourne, Anda harus menghilangkan itu ;
(Anda juga dapat menggunakan for i do
(kecuali dalam beberapa versi abu lama di mana Anda memerlukan baris baru sebelum do
)).
Lihat Apa tujuan kata kunci "lakukan" di Bash untuk loop? untuk informasi lebih lanjut termasuk varian yang lebih mengejutkan .
Perbuatan:
for i
do
something with "$i"
done
adalah praktik yang baik. Ini sedikit lebih portabel / dapat diandalkan daripada yang biasanya setara:
for i in "$@"; do
something with "$i"
done
di mana shell Bourne, ksh88 memiliki beberapa masalah di bawah beberapa kondisi (seperti kapan $#
0 di beberapa versi shell Bourne (yang ${1+"$@"}
alih-alih "$@"
dapat bekerja di sekitar) atau ketika $IFS
tidak mengandung karakter spasi di Bourne dan ksh88), atau ketika yang nounset
pilihan ini diaktifkan dan $#
0 dalam beberapa versi beberapa kerang termasuk bash
( lagi dengan ${1+"$@"}
sebagai kerja-sekitar ).