A full featured Map implementation in bash script, providing de functionality of a HashMap. Developed using bash 3.
See the file test_shell_map.sh for more usage examples.
If you want to understand how shell_map is implemented, take a look at IMPLEMENTATION_NOTES.md
# Usage
# importing shell_map.sh
source shell_map.sh
# instantiating a new shell_map with the name 'users'
shell_map new users
# storing key value pairs
users put jdavis "John Davis"
users put bnegrao "Bruno Negrao"
users put msilva "Mariana Silva"
# retrieving values from the map
users get jdavis # returns "John Davis"
# test if a key exists
users contains_key msilva && echo "msilva's name is `users get msilva`"
# iterating through all keys in 'users' shell_map
for username in `users keys`; do
name=`users get $username`
echo "user $username, name: $name"
done
new <mymap>: instantiates a new shell_map instance named<mymap>
clear_all: remove all the key value pairs from the mapcontains_key <key>: returns true if the<key>exists in the map, returns false otherwise.get <key>: retrieves the value associated with<key>keys: retrieves a list of key names, separated by new line characters.put <key> <value>: stores<value>associated with<key>. valid key name must be a string consisting solely of letters, numbers, and underscores.put_append <key> <value>: convenience method that appends<value>to an existing key value. Creates a new key if it didn't exist.put_increment <key> <value>: convenience method that stores a numeric<value>incrementing the existing value.remove <key>: removes a key from the map.size: return the number of keys contained in the map