Нетривиально :)
Алярм! В некоторых местах этого кода пробелы необходимы или, наоборот, обязательно не должны быть.
(
этот код на pastebin.com)
f() {
IFS= eval 'local arr=(${'$1'[@]})' #после этого локальная переменная arr содержит массив-параметр
for ((i=0; i<${#arr[@]}; ++i));
do echo "array[$i] is '${arr[i]}'"
done
}
a=(a b c "contains space")
f a;