Para passar os elementos da matriz como argumentos para a função, use a sintaxe ksh para expandir os elementos da matriz como uma lista.
work_on_array "${myarray[@]}"
O sufixo [@] torna isso uma expansão de matriz. As aspas duplas protegem cada elemento contra expansão adicional (divisão e globbing). O resultado da expansão não é, em geral, uma palavra como normalmente é com aspas duplas, mas tantas palavras quanto elementos no array.
O elemento N th da matriz é então ${N} . Para acessá-lo, você precisa usar eval ; consulte Use uma referência de variável "dentro" de outra variável