+++ /dev/null
-#!/bin/bash
-
-##############
-
-# simple examples...
-
-declare -A snuggles
- # make an associative array
-
-snuggles=([book]=petunia [muffets]="glasgow robbery")
- # keys: book and muffets
- # values: (second part)
-
-snuggles+=([morgower]=flimshaw)
- # adding entries to it.
-
-echo ${!snuggles[x]}
- # show index x's key.
-
-echo ${snuggles[x]}
- # show index x's value.
-
-##############
-
-# excellent code from:
-# http://blog.spencertipping.com/2009/08/constant-time-associative-arrays-in-bash
-
-typeset -a table_keys
-typeset -a table_values
-
-function index_of_key () {
- initial=$(($(echo $1 | md5sum | cut -c 18-32 | awk '{print "0x"$1}')))
- while [[ ${table_keys[$initial]} && ${table_keys[$initial]} != $1 ]]; do
- initial=$((initial + 1))
- done
- echo -n $initial
-}
-
-function associate () {
- index=$(index_of_key $1)
- table_keys[$index]=$1
- table_values[$index]=$2
- echo -n $2
-}
-
-function lookup () {
- index=$(index_of_key $1)
- echo -n ${table_values[$index]}
-}
-
-echo Associating foo with bar and bif with baz
-associate foo bar && echo
-associate bif baz && echo
-
-echo -n Looking up foo:
-lookup foo && echo
-
-echo -n Looking up bif:
-lookup bif && echo
-
-echo -n Looking up bar:
-lookup bar && echo
-
-##############
-