В циклах for в bash переменная-счетчик является локальной или глобальной?

Как насчет переменной оболочки FUNCNAME?man bash:

FUNCNAME

An array variable containing the names of all shell functions currently in the execution call stack. The element with index 0 is the name of any currently-executing shell function.

3
02.06.2021, 15:15
1 ответ

for не вводит свою собственную область видимости переменных, поэтому i— это то, что находится на входе в цикл for. Это может быть глобальным или локальным для любой функции, объявленной как локальная , или даже глобальным, но в подчиненной -оболочке .

При выходе из цикла forпеременная будет иметь последнее значение, которое она имела в цикле, если только она не попала в оболочку sub -. Насколько сильно это повлияет, зависит от области действия переменной, поэтому рекомендуется объявлять переменные цикла как локальные внутренние функции (, если только не требуется побочный -эффект ).

17
28.07.2021, 11:27

Теги

Похожие вопросы