Просто создайте функцию, используя myfunction () (...)
вместо myfunction () {...}
(так он будет работать в подоболочке) и передать ваш массив в качестве аргументов функции.
myfunc() (
for f in "$@"; do
printf '%s\n' "$f"
done
)
myfunc these arguments "are passed" 'to myfunc'
myarray=( "These values" "are set as" part 'of an array' )
myfunc "${myarray[@]}"
Вывод выглядит так:
these
arguments
are passed
to myfunc
These values
are set as
part
of an array
Примечание: это просто пример функции, но на самом деле это более простая версия, которая делает то же самое:
myfunc_simpler() (
printf '%s\n' "$@"
)