En los bucles for de bash, ¿la variable del contador es local o global?

En los bucles for de bash, ¿la variable del contador es local o global?

en el idioma

for i in $directories; do
  # ...
done

... ¿la variable es $ilocal o global?

¿Y qué pasa si hay una variable global con el mismo nombre? ¿Bash funciona con la variable global o con la del for ... in ...encabezado?

Respuesta1

forno introduce su propio alcance variable, al igual ique lo que sea que esté al ingresar al forciclo. Esto podría ser global, olocal a cualquier función declarada como local, o inclusoglobal pero en una subcapa.

Al salir del forbucle, la variable tendrá el último valor que tenía en el bucle, a menos que termine en un subshell. Cuánto afecta eso depende del alcance de la variable, por lo que es una buena idea declarar las variables de bucle como funciones internas locales (a menos que se desee el efecto secundario).

información relacionada