as for:
for i in *; do something-with $i; done
versus
while $1...shift?
the former has word splitting problems in propably just about any shell
scripting language other than zsh. So I consider it bad practise in shell
scripts in general. (Don't want to get too used to the comforts of zsh in case I
need to write a sh script again)
the later has control flow problems, since you absolutely must not forget the
"shift" when you use "continue". But at least it also save miniscule amounts of
memory ;-> |