慣用語として
for i in $directories; do
# ...
done
...変数は$i
ローカルですか、それともグローバルですか?
同じ名前のグローバル変数がある場合はどうなりますか? bashはグローバル変数またはヘッダーのいずれかを使用しますかfor ... in ...
?
ベストアンサー1
for
独自の変数範囲を導入せず、ループにi
入るfor
項目もありません。これはグローバルですlocalとして宣言されたすべての関数に対してローカルです。、さらにグローバルですがサブシェルにあります。
ループを終了すると、for
変数はサブシェルで終わらない限りループの最後の値を持ちます。効果の程度は変数の範囲によって異なりますので、ループ変数をローカル内部関数として宣言するのが最善です(副作用が必要ない場合)。