#!/bin/bash # -A declares v to be an associative array # [key]=vlaue declare -A v v=( ["var1"]="variable 01" ["var2"]="variable 02" ["var3"]="variable 03" ["var4"]="variable 01" ) # ${!v[@]} gives us the keys # to access the value use ${v[key]} for k in ${!v[@]} do echo "v: [$k] => [${v[$k]}]" done # key can have spaces declare -A vws vws=( ["var 1"]="variable 01" ["var 2"]="variable 02" ) echo "vsw: [var 1] => [${vws['var 1']}]" echo "vsw: [var 2] => [${vws['var 2']}]"Output:
v: [var1] => [variable 01] v: [var3] => [variable 03] v: [var2] => [variable 02] v: [var4] => [variable 01] vsw: [var 1] => [variable 01] vsw: [var 2] => [variable 02]Reference: http://www.linuxjournal.com/content/bash-associative-arrays