From 69f50888f42f52897fbd3949355d4f7026262ce0 Mon Sep 17 00:00:00 2001 From: Edson Ticona Date: Sun, 20 Jan 2019 13:18:13 +0100 Subject: [PATCH] Adds associative array usage --- bash.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/bash.md b/bash.md index 1e0d546e6..0a6adabda 100644 --- a/bash.md +++ b/bash.md @@ -464,6 +464,42 @@ for i in "${arrayName[@]}"; do done ``` +Dictionaries (Associative Arrays) +-------------------------------- + +### Defining + +```bash +declare -A sounds +``` + +```bash +sounds[dog]="bark" +sounds[cow]="moo" +sounds[bird]="tweet" +sounds[wolf]="howl" +``` + +### Working with dictionaries + +```bash +echo ${sounds[dog]} # Dog's sound +echo ${sounds[@]} # All the values +echo ${!sounds[@]} # All the keys +echo ${#sounds[@]} # Number of elements +unset sounds[dog] # Delete dog +``` + +### Iteration +```bash +for i in "${sounds[@]}"; do # Iterate over values + echo $i +done +for i in "${!sounds[@]}"; do # Iterate over keys + echo $i +done +``` + Options -------