improve of cmpl.
[bush.git] / tests / assoc9.sub
blobb88671873e326f7e34877298ee1f80b9136654be
1 #   This program is free software: you can redistribute it and/or modify
2 #   it under the terms of the GNU General Public License as published by
3 #   the Free Software Foundation, either version 3 of the License, or
4 #   (at your option) any later version.
6 #   This program is distributed in the hope that it will be useful,
7 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
8 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 #   GNU General Public License for more details.
11 #   You should have received a copy of the GNU General Public License
12 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
14 typeset -A a=( [\\]= [\"]= [\)]= ) b
15 for x in "${!a[@]}"; do b[$x]=; done
16 b+=([\`]= [\]]=)
17 typeset -p b
18 for x in "${!a[@]}"; do
19   unset -v 'b[$x]'
20 done
21 typeset -p b
23 unset -v a b
25 loaddict()
27     dict['"']=1
28     dict['`']=2
29     dict["'"]=3
30     dict['\']=4
31     declare -p dict
34 del()
36         unset -v dict["$1"];
39 declare -A dict
40 loaddict
41 for k in "${!dict[@]}"; do del "$k"; done 
42 declare -p dict
44 unset 'dict[@]'
46 shopt -s assoc_expand_once
47 declare -A dict
48 loaddict
49 for k in "${!dict[@]}"; do del "$k"; done 
50 declare -p dict
52 unset a b dict
54 typeset -A a
55 b="80's"
57 ((++a[$b]))
59 ((++a["$b"]))
60 [[ $((++a[$b])) ]]
61 [[ $((++a["$b"])) ]]
62 echo ${a["$b"]}
63 echo ${a[$b]}
65 let "++a[$b]"
67 echo 'a[$b]=' "${a[$b]}"
69 unset a b
71 declare -A a
72 b="80's"
74 : ${a[$b]:='Depeche Mode'}
76 declare -p a
78 unset a b
79 shopt -u assoc_expand_once
81 typeset -A a
82 b="80's"
84 read a[$b] <<<"Depeche Mode"
85 typeset -p a
87 shopt -s assoc_expand_once
88 read a[$b] <<<"Depeche Mode"
89 typeset -p a
91 unset a
92 shopt -u assoc_expand_once
94 typeset -A a
96 printf -v a[$b] "%s" "Depeche Mode"
97 typeset -p a
99 shopt -s assoc_expand_once
101 printf -v a[$b] "%s" "Depeche Mode"
102 typeset -p a
104 unset a
106 declare -A a
107 x='$(date >&2)'
108 a[$x]=5
110 shopt -s assoc_expand_once
111 echo $((1+a[$x]))
112 echo $((1+a[\$x]))
113 echo "1+${a[$x]}"
115 declare -p a
117 shopt -s assoc_expand_once
118 declare -A myarray
120 declare myarray["foo[bar"]=bleh
121 myarray["foo"]=bleh
123 declare -p myarray
125 key='$(date >&2)'
126 declare -A aa
127 aa[$key]=foo
128 echo "${aa[$key]}"
130 [[ -v aa[$key] ]] || echo bad assoc expansion