История изменений
Исправление vodz, (текущая версия) :
Можно передавать внутрь ссылку на массив. Но, во-первых, это только с v4.3 работает.
Можно передавать имя массива и копировать в local.
Т.е. непосредственно перед вызовом функции все, что ей надо, засовывается в массив с именем [function_name]_data
Это неудобно, если вам надо вызвать две разные функции с одинаковыми данными, пусть и с небольшим изменением. И вообще, если у вас имя входного параметра жестко задано по имена функции, то зачем эти все извращения? Оно же у вас глобальное в контексте вызова.
eval «$1='${ttt}'»
Это сломается, если в ttt будет одинарная кавычка. Или $1 есть ttt. Рекомендуется юзать _ttt и eval $1=\$_ttt
local i=0
let i=$i+1
Устарело давно let.
local -i i
i+=1
Исходная версия vodz, :
Можно передавать внутрь ссылку на массив. Но, во-первых, это только с v4.3 работает.
Можно передавать имя массива и копировать в local.
Т.е. непосредственно перед вызовом функции все, что ей надо, засовывается в массив с именем [function_name]_data
Это неудобно, если вам надо вызвать две разные функции с одинаковыми данными, пусть и с небольшим изменением. И вообще, если у вас имя входного параметра жестко задано по имена функции, то зачем эти все извращения? Оно же у вас глобальное в контексте вызова.
eval «$1='${ttt}'»
Это сломается, если в ttt будет одинарная кавычка. Или $1 есть ttt. Рекомендуется юзать _ttt и eval $1=\$_ttt