no idioma
for i in $directories; do
# ...
done
... a variável é $i
local 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
for
não introduz seu próprio escopo de variável, assim i
como o que quer que esteja na entrada do for
loop. 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 for
loop, 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).