Script – Pasar un array como argumento de una función en Bash.-

#!/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.

Esta entrada fue publicada en Unix - Linux. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *