summaryrefslogtreecommitdiff
path: root/tests/assoc9.sub
blob: 8f2a23be4c28b5e42642e4c1fe54d1743c3208ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#   This program is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
typeset -A a=( [\\]= [\"]= [\)]= ) b
for x in "${!a[@]}"; do b[$x]=; done
b+=([\`]= [\]]=)
typeset -p b
for x in "${!a[@]}"; do
  unset -v 'b[$x]'
done
typeset -p b

unset -v a b

loaddict()
{
    dict['"']=1
    dict['`']=2
    dict["'"]=3
    dict['\']=4
    declare -p dict
}

del()
{
	unset -v dict["$1"];
}

declare -A dict
loaddict
for k in "${!dict[@]}"; do del "$k"; done 
declare -p dict

unset 'dict[@]'

shopt -s assoc_expand_once
declare -A dict
loaddict
for k in "${!dict[@]}"; do del "$k"; done 
declare -p dict

unset a b dict

typeset -A a
b="80's"

((++a[$b]))

((++a["$b"]))
[[ $((++a[$b])) ]]
[[ $((++a["$b"])) ]]
echo ${a["$b"]}
echo ${a[$b]}

let "++a[$b]"

echo 'a[$b]=' "${a[$b]}"

unset a b

declare -A a
b="80's"

: ${a[$b]:='Depeche Mode'}

declare -p a

unset a b
shopt -u assoc_expand_once

typeset -A a
b="80's"

read a[$b] <<<"Depeche Mode"
typeset -p a

shopt -s assoc_expand_once
read a[$b] <<<"Depeche Mode"
typeset -p a

unset a
shopt -u assoc_expand_once

typeset -A a

printf -v a[$b] "%s" "Depeche Mode"
typeset -p a

shopt -s assoc_expand_once

printf -v a[$b] "%s" "Depeche Mode"
typeset -p a

unset a

declare -A a
x='$(date >&2)'
a[$x]=5

shopt -s assoc_expand_once
echo $((1+a[$x]))
echo $((1+a[\$x]))
echo "1+${a[$x]}"

declare -p a

shopt -s assoc_expand_once
declare -A myarray

declare myarray["foo[bar"]=bleh
myarray["foo"]=bleh

declare -p myarray