improve of cmpl.
[bush.git] / tests / array27.sub
blob44ed444ddfd5f7964b47dffdd4cc2747cca9f805
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 # tests for `problem' keys when using associative arrays and assoc_expand_once
15 # deal with problems for now; this is a placeholder for if and when I fix them
17 typeset -A a
18 shopt -s assoc_expand_once
20 k='['
21 echo $(( a[$k]=7 ))
23 k=']'
24 echo $(( a[$k]=7 ))
26 unset a
28 declare -A A
30 for k in $'\t' ' '; do
31    (( A[$k]=2 ))
32 done
33 declare -p A
35 for k in ']' '*' '@'; do
36    (( A[$k]=2 ))
37 done
39 declare -p A
41 unset A
42 declare -A A
44 for k in $'\t' ' ' ']' '*' '@'; do
45    read "A[$k]" <<< X
46 done
47 declare -p A
49 unset A
50 declare -A A
52 for k in $'\t' ' ' ']' '*' '@'; do
53         printf -v "A[$k]" "%s" X
54 done
55 declare -p A
57 unset A
58 declare -A A
60 for k in ']' '*' '@'; do
61    declare A[$k]=X
62 done
63 declare -p A
65 unset A
66 declare -A A
68 for k in ']' '*' '@'; do
69    declare "A[$k]=X"
70 done
71 declare -p A