История изменений
Исправление vodz, (текущая версия) :
Почему в if’е происходит переобъявление переменной? Ни в одном итеративном языке такого не видел.
Имелось в виду, что может быть развесистая логика, которая для временных переменных вызывает свой local. Это ничем не страшно, так как не будет расхода памяти на переменные, так как в одной функции один контекст. Но иногда очень полезно, так как помимо обнуления, local позволяет нарисовать присваивание такое, какое может сделать только eval. Например, копирование массива:
local -a '_copy=("${'$1'[@]}")'
Исходная версия vodz, :
Почему в if’е происходит переобъявление переменной? Ни в одном итеративном языке такого не видел.
Имелось в виду, что может быть развесистая логика, которая для временных переменных вызывает свой local. Это ничем не страшно, так как не будет расхода памяти на переменные, так как в одной функции один контекст. Но иногда очень полезно, так как помимо обнуления, local позволяет нарисовать присваивание такое, какое может сделать только eval. Этим знатоки bash-а пользуются.