for
bucles bucle en los parámetros posicionales si no in value1 value2...
se especifica ninguna parte en todos los shells tipo Bourne.
Ese ya era el caso en el shell Bourne de finales de los 70, aunque en el shell Bourne, tendrías que omitir eso ;
(también puedes usarlo for i do
(excepto en algunas versiones antiguas de ash donde necesitas una nueva línea antes del do
)).
Consulte ¿Cuál es el propósito de la palabra clave "hacer" en Bash para bucles? para obtener más información, incluidas variantes más sorprendentes .
Obra:
for i
do
something with "$i"
done
Es una buena práctica. Es un poco más portátil / confiable que el equivalente generalmente:
for i in "$@"; do
something with "$i"
done
para el cual el shell Bourne, ksh88 tiene algunos problemas bajo ciertas condiciones (como cuando $#
es 0 en algunas versiones del shell Bourne (que en ${1+"$@"}
lugar de "$@"
funcionar) o cuando $IFS
no contiene el carácter de espacio en Bourne y ksh88), o cuando la nounset
opción está habilitada y $#
es 0 en algunas versiones de algunos shells incluidos bash
( nuevamente con ${1+"$@"}
una solución alternativa ).