관용어로
for i in $directories; do
# ...
done
...변수가 $i
로컬인가요 아니면 전역인가요?
같은 이름을 가진 전역 변수가 있으면 어떻게 되나요? bash는 전역 변수나 헤더 중 하나를 사용합니까 for ... in ...
?
답변1
for
자체 변수 범위를 도입하지 않으며 루프에 i
들어가는 for
항목도 없습니다 . 이는 전역적이거나local로 선언된 모든 함수에 대해 로컬입니다., 심지어전역이지만 서브셸에 있음.
루프를 종료 하면 for
변수는 하위 쉘에서 끝나지 않는 한 루프의 마지막 값을 갖게 됩니다. 효과의 정도는 변수의 범위에 따라 달라지므로 루프 변수를 로컬 내부 함수로 선언하는 것이 가장 좋습니다(부작용이 필요하지 않은 경우).