在bash的for循环中,计数器变量是局部变量还是全局变量?

在bash的for循环中,计数器变量是局部变量还是全局变量?

在习语中

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

...变量是$i局部变量还是全局变量?

如果恰好有一个同名的全局变量怎么办? bash 是否使用全局变量或标头之一for ... in ...

答案1

for不引入自己的变量范围,i进入for循环的任何内容也是如此。这可能是全球性的,或者对于声明为本地的任何函数都是本地的, 甚至全局但在子 shell 中

退出for循环时,变量将具有循环中的最后一个值,除非它最终位于子 shell 中。影响程度取决于变量的范围,因此最好将循环变量声明为局部内部函数(除非需要副作用)。

相关内容