Se você quiser fazer um loop sobre todos os argumentos para o seu script, em qualquer shell parecido com o Bourne, é:
for i do
something with "$i"
done
Você também pode fazer:
for i in "$@"; do
something with "$i"
done
mas é mais longo e não tão portátil (embora seja para os shells modernos).
Observe que:
for i; do
something with "$i"
done
não é nem Bourne nem POSIX, portanto deve ser evitado (embora funcione em muitos shells)
Para completar, em cartuchos não-Bourne:
csh / tcsh
@ i = 1
while ($i <= $#argv)
something with $argv[$i]:q
@ i++
end
Você não pode usar:
foreach i ($argv:q)
something with $i:q
end
porque isso pula os argumentos vazios
rc / akanga
for (i) something with $i
( rc
geralmente é o que as shells devem ser).
es
for (i=$*) something with $i
(é rc em esteróides).
peixe
for i in $argv
something with $i
end
zsh
Embora aceite a sintaxe Bourne, também suporta os mais curtos como:
for i ("$@") something with "$i"