declare -A BASH_ALIASES=() declare -A BASH_CMDS=() declare -A fluff declare -A BASH_ALIASES=() declare -A BASH_CMDS=() declare -A fluff=([bar]="two" [foo]="one" ) declare -A fluff=([bar]="two" [foo]="one" ) declare -A fluff=([bar]="two" ) declare -A fluff=([bar]="newval" [qux]="assigned" ) ./assoc.tests: line 26: chaff: four: must use subscript when assigning associative array declare -A BASH_ALIASES=() declare -A BASH_CMDS=() declare -Ai chaff=([one]="10" [zero]="5" ) declare -Ar waste=([version]="4.0-devel" [source]="./assoc.tests" [lineno]="28" [pid]="42134" ) declare -A wheat=([two]="b" [three]="c" [one]="a" [zero]="0" ) declare -A chaff=([one]="10" ["hello world"]="flip" [zero]="5" ) ./assoc.tests: line 38: waste: readonly variable ./assoc.tests: line 39: unset: waste: cannot unset: readonly variable ./assoc.tests: line 40: chaff[*]: bad array subscript ./assoc.tests: line 41: [*]=12: invalid associative array key declare -A chaff=([one]="a" ["hello world"]="flip" ) flip argv[1] = argv[2] = argv[3] = argv[4] = argv[1] = argv[2] = argv[3] = argv[1] = argv[2] = argv[3] = argv[4] = argv[1] = ./assoc.tests: line 58: declare: chaff: cannot destroy array variables in this way ./assoc.tests: line 60: chaff[*]: bad array subscript ./assoc.tests: line 61: [*]=12: invalid associative array key declare -A wheat=([six]="6" ["foo bar"]="qux qix" ) argv[1] = argv[2] = argv[1] = declare -A wheat=([six]="6" ["foo bar"]="qux qix" ) argv[1] = <2> argv[1] = <7> argv[1] = argv[2] = argv[3] = argv[1] = argv[1] = <16> argv[1] = <16> argv[1] = <6> argv[2] = argv[1] = argv[2] = argv[3] = argv[1] = argv[2] = 8 . /sbin /usr/bin /bin /usr/ucb /usr/local/bin /bin /usr/sbin . sbin bin bin ucb bin bin sbin bin / / / / / / / / argv[1] = argv[1] = argv[1] = argv[1] = 8 . /sbin /usr/bin /bin /usr/ucb /usr/local/bin /bin /usr/sbin . sbin bin bin ucb bin bin sbin / / / / / / / 8 4 -- /bin . ^sbin ^usr^bin ^bin ^usr^ucb ^usr^local^bin ^bin ^usr^sbin . ^sbin ^usr^bin ^bin ^usr^ucb ^usr^local^bin ^bin ^usr^sbin . \sbin \usr/bin \bin \usr/ucb \usr/local/bin \bin \usr/sbin . \sbin \usr\bin \bin \usr\ucb \usr\local\bin \bin \usr\sbin . \sbin \usr\bin \bin \usr\ucb \usr\local\bin \bin \usr\sbin ([a]=1) qux foo /usr/local/bin/qux /usr/sbin/foo hits command 0 /sbin/blat 0 /usr/local/bin/qux 0 /bin/sh 0 /usr/sbin/foo blat qux sh foo /sbin/blat /usr/local/bin/qux /bin/sh /usr/sbin/foo qux foo argv[1] = argv[2] = <-l> argv[3] = alias blat='cd /blat ; echo $PWD' alias foo='/usr/sbin/foo' alias qux='/usr/local/bin/qux -l' alias sh='/bin/bash --login -o posix' blat qux sh foo argv[1] = argv[2] = argv[3] = argv[4] = outside: outside declare -A BASH_ALIASES=() declare -A BASH_CMDS=() declare -A afoo=([six]="six" ["foo bar"]="foo quux" ) argv[1] = argv[2] = argv[3] = outside 2: outside argv[1] = argv[1] = argv[2] = <> argv[3] = argv[4] = <> argv[1] = argv[1] = argv[2] = <> argv[3] = argv[4] = <> argv[1] = argv[1] = argv[2] = <> argv[3] = argv[4] = <> argv[1] = argv[1] = argv[2] = <> argv[3] = argv[4] = <> argv[1] = argv[1] = argv[2] = <> argv[3] = argv[4] = <> abc def def ./assoc5.sub: line 13: declare: `myarray[foo[bar]=bleh': not a valid identifier bleh abc def myarray=(["a]=test1;#a"]="123" [foo]="bleh" ["a]a"]="abc" ["]"]="def" ) 123 myarray=(["a]=test1;#a"]="123" [foo]="bleh" ["a]a"]="abc" ["a]=test2;#a"]="def" ["]"]="def" ) bar"bie doll declare -A foo=(["bar\"bie"]="doll" ) bar"bie doll declare -A foo=(["bar\"bie"]="doll" ) bar"bie doll declare -A foo=(["bar\"bie"]="doll" ) bar"bie doll declare -A foo=(["bar\"bie"]="doll" ) bar"bie doll declare -A foo=(["bar\"bie"]="doll" ) bar'bie doll declare -A foo=(["bar'bie"]="doll" ) bar'bie doll declare -A foo=(["bar'bie"]="doll" ) bar'bie doll declare -A foo=(["bar'bie"]="doll" ) bar'bie doll declare -A foo=(["bar'bie"]="doll" ) bar'bie doll declare -A foo=(["bar'bie"]="doll" ) bar$bie doll declare -A foo=(["bar\$bie"]="doll" ) bar[bie doll declare -A foo=(["bar[bie"]="doll" ) bar`bie doll declare -A foo=(["bar\`bie"]="doll" ) bar\]bie doll declare -A foo=(["bar\\]bie"]="doll" ) bar${foo}bie doll declare -A foo=(["bar\${foo}bie"]="doll" ) bar after printf after use: 0 declare -A assoc=([0]="assoc" ) assoc declare -A assoc=([two]="twoless" [three]="three" [one]="onemore" ) declare -Ar assoc=([two]="twoless" [three]="three" [one]="onemore" )