在慣用語中
for i in $directories; do
# ...
done
...變數是$i
局部變數還是全域變數?
如果剛好有一個同名的全域變數怎麼辦? bash 是否使用全域變數或標頭之一for ... in ...
?
答案1
for
不引入自己的變數範圍,i
進入for
循環的任何內容也是如此。這可能是全球性的,或者本地於任何宣告為本地的函數, 甚至全域但在子 shell 中。
退出for
循環時,變數將具有循環中的最後一個值,除非它最終位於子 shell 中。影響程度取決於變數的範圍,因此最好將循環變數宣告為局部內部函數(除非需要副作用)。