Em loops for no bash, a variável do contador é local ou global?

Em loops for no bash, a variável do contador é local ou global?

no idioma

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

... a variável é $ilocal ou global?

E se acontecer de existir uma variável global com o mesmo nome. O bash funciona com a variável global ou com a do for ... in ...cabeçalho?

Responder1

fornão introduz seu próprio escopo de variável, assim icomo o que quer que esteja na entrada do forloop. Isto pode ser global oulocal para qualquer função que o tenha declarado como local, ou mesmoglobal, mas em um sub-shell.

Ao sair do forloop, a variável terá o último valor que tinha no loop, a menos que tenha terminado em um subshell. O quanto isso afeta depende do escopo da variável, portanto é uma boa ideia declarar variáveis ​​de loop como funções internas locais (a menos que o efeito colateral seja desejado).

informação relacionada