#!/bin/bash
function Iterate() {
arr=("$@")
for IDX in "${arr[@]}"; do
echo "$IDX"
done
}
array=("arg1" "arg-2" "arg 3")
Iterate "${array[@]}"
O también puede ser, pasarselo por referencia. Es más entendible :
#!/bin/bash
get_arr() {
declare -n array_param="$1"
echo "Elementos: ${array_param[@]}"
}
arr1=(a be ce de)
arr2=(uno dos tres cuatro)
get_arr arr1
get_arr arr2
Al ejecutarlo obtendriamos lo siguiente :
$ ./array_params.sh
Elementos: a be ce de
Elementos: uno dos tres cuatro
De todas maneras, en ninguno de los casos le pasas el array como parametro. En el primer SCRIPT, desempaquetas el array enfrente de tu función, y le pasas los elementos separados por un espacio; en el segundo SCRIPT, le pasas el nombre de la variable; ya adentro, el nombre se expande y se le referencia a esa otra variable externa para que pueda ser manipulada indirectamente.