LINUX.ORG.RU

История изменений

Исправление vodz, (текущая версия) :

Почему в if’е происходит переобъявление переменной? Ни в одном итеративном языке такого не видел.

Имелось в виду, что может быть развесистая логика, которая для временных переменных вызывает свой local. Это ничем не страшно, так как не будет расхода памяти на переменные, так как в одной функции один контекст. Но иногда очень полезно, так как помимо обнуления, local позволяет нарисовать присваивание такое, какое может сделать только eval. Например, копирование массива:

local -a '_copy=("${'$1'[@]}")'
Этим знатоки bash-а пользуются.

Исходная версия vodz, :

Почему в if’е происходит переобъявление переменной? Ни в одном итеративном языке такого не видел.

Имелось в виду, что может быть развесистая логика, которая для временных переменных вызывает свой local. Это ничем не страшно, так как не будет расхода памяти на переменные, так как в одной функции один контекст. Но иногда очень полезно, так как помимо обнуления, local позволяет нарисовать присваивание такое, какое может сделать только eval. Этим знатоки bash-а пользуются.