Matrices:
Pasar un arreglo, vector o matriz como parámetro a una función:
# Para una Matriz asociativa:
function foo {
local -n data_ref=$1
echo ${data_ref[a]} ${data_ref[b]}
}
declare -A data
data[a]="Fred Flintstone"
data[b]="Barney Rubble"
foo data
# ############################################3
# Para una Matriz Normal:
function copyFiles() {
arr=("$@")
for i in "${arr[@]}";
do
echo "$i"
done
}
array=("one 1" "two 2" "three 3")
copyFiles "${array[@]}"
Creación:
declare -A “Nombre de matriz”
Asignación:
* NombreArray [ key ] =value
* declare -A ArrayName = ( [ clave1 ] =Valor1 [ clave2 ] =Valor2 [ Clave3 ] =Valor3…. )
Convertir una matriz asociativa en un vector:
for idx in "${!OPTIONS[@]}";do
dialogarray+=("$idx" "${OPTIONS[$idx]}")
done
: Imprimir o mostrar valores del arreglo matriz, asociativa:
1. Un valor dada la clave:
- echo ${NombreArray[nombreClave]}
2. Todos los valores iterando en todas las claves:
- for key in "${!ArrayName[@]}"; do echo $key; done
3. Todos las claves por expansión:
- echo " ${!muestraArray1[@]} "
4. Clave y Valor iterando por valor:
- for val in "${ArrayName[@]}"; do echo $val; done
5. Todos los valores por expansión:
- echo "${sampleArray1[@]}"
6. Clave Valor iterando por clave:
- for key in "${!sampleArray1[@]}"; do echo "$key ${sampleArray1[$key]}"; done
7. Contando las duplas del arreglo:
- echo "${#ArrayName[@]}"
9. Añadiendo Valores:
- ArrayName+=([key]=value)
10. Borrando del arreglo por clave:
- unset ArrayName[Key]
11. Verificar un Elemento:
- $ if [ ${ArrayName[searchKEY]+_} ]; then echo "Exists"; else echo "Not available"; fi
12. Borrar todo el vector:
- unset ArrayName