LINUX.ORG.RU

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

Исправление 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