Arrays
Arrays en Bash
Section titled “Arrays en Bash”Listas indexadas y (Bash 4+) asociativas. Siempre entre comillas al expandir: "${arr[@]}".
Definir y acceder
Section titled “Definir y acceder”nombres=("Ana" "Luis" "Pedro")numeros[0]=10numeros[1]=20
echo "${nombres[0]}" # Anaecho "${nombres[@]}" # todosecho "${#nombres[@]}" # tamaño → 3echo "${nombres[@]:1:2}" # slice: desde 1, 2 elems| Concepto | Significado |
|---|---|
arr=(a b c) | Definir. |
${arr[i]} | Elemento i. |
${arr[@]} / ${arr[*]} | Todos (mejor @ en bucles). |
${#arr[@]} | Longitud. |
${!arr[@]} | Índices. |
arr+=("x") | Añadir al final. |
unset arr[i] | Quitar un índice. |
declare -A | Array asociativo (Bash 4+). |
Recorrer / modificar
Section titled “Recorrer / modificar”for nombre in "${nombres[@]}"; do echo "Hola $nombre"done
for i in "${!nombres[@]}"; do echo "Índice: $i → ${nombres[$i]}"done
nombres+=("Carla")nombres[1]="Lucía"unset nombres[1]Asociativos
Section titled “Asociativos”declare -A capitalescapitales[Colombia]="Bogotá"capitales[México]="CDMX"
echo "${capitales[Colombia]}"for pais in "${!capitales[@]}"; do echo "$pais → ${capitales[$pais]}"doneOrdenar números:
numeros=(3 8 1)sorted=($(printf '%s\n' "${numeros[@]}" | sort -n))echo "${sorted[@]}" # 1 3 8Docs: Bash arrays.