bashのforループでは、カウンタ変数はローカル変数かグローバル変数ですか?

bashのforループでは、カウンタ変数はローカル変数かグローバル変数ですか?

慣用語として

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

...変数は$iローカルですか、それともグローバルですか?

同じ名前のグローバル変数がある場合はどうなりますか? bashはグローバル変数またはヘッダーのいずれかを使用しますかfor ... in ...

ベストアンサー1

for独自の変数範囲を導入せず、ループにi入るfor項目もありません。これはグローバルですlocalとして宣言されたすべての関数に対してローカルです。、さらにグローバルですがサブシェルにあります

ループを終了すると、for変数はサブシェルで終わらない限りループの最後の値を持ちます。効果の程度は変数の範囲によって異なりますので、ループ変数をローカル内部関数として宣言するのが最善です(副作用が必要ない場合)。

おすすめ記事