En Bash 4 y versiones posteriores, las matrices asociativas le permiten crear listas de pares clave-valor que se pueden buscar por clave o por valor. Debido a la relación bidireccional entre la clave y el valor, también se denominan diccionarios de datos.
Podemos iterar a través  de una matriz   asociativa usando un  for círculo. Este script es «asociative.sh». Define una matriz asociativa con cuatro entradas, una para cada uno de «perro», «gato», «robin» y «humano». Estas  son  las claves.  Los  valores  son  el  número (predeterminado) de patas que tiene cada uno.
| 
					 1 2 3 4 5 6 7 8 9 10  | 
						#!/bin/bash declare -A animals=( [dog]=Four-legged [cat]=Four-legged [robin]=Two-legged [human]=Two-legged ) for legs in ${!animals[@]} do   if [ ${animals[$legs]} == "Two-legged" ]; then      echo ${legs}   fi done  | 
					
El iterador se llama legs . Tenga en cuenta que el encabezado del ciclo contiene un «!«Punto de exclamación. Esto  no  actúa  como el  operador  lógico  NOT, es parte  de  la sintaxis  de matriz asociativa. Se requiere para buscar a través de la matriz.
El cuerpo del bucle realiza una prueba de comparación de cadenas. Si el valor del miembro de la matriz es «de dos patas», imprime el valor de la clave en la ventana del terminal. Cuando lo ejecutamos, el script imprime las criaturas de dos patas.
Este codigo ${animals[@]} se expande a los valores y ${!animal[@]} se expande a dog cat robin human.