]> git.ipfire.org Git - thirdparty/bash.git/blame - tests/assoc.right
bash-5.0-rc1 release
[thirdparty/bash.git] / tests / assoc.right
CommitLineData
a0c0a00f
CR
1declare -A BASH_ALIASES=()
2declare -A BASH_CMDS=()
3declare -A fluff
4declare -A BASH_ALIASES=()
5declare -A BASH_CMDS=()
f250956c
CR
6declare -A fluff=([foo]="one" [bar]="two" )
7declare -A fluff=([foo]="one" [bar]="two" )
a0c0a00f
CR
8declare -A fluff=([bar]="two" )
9declare -A fluff=([bar]="newval" [qux]="assigned" )
0001803f 10./assoc.tests: line 26: chaff: four: must use subscript when assigning associative array
a0c0a00f
CR
11declare -A BASH_ALIASES=()
12declare -A BASH_CMDS=()
f250956c
CR
13declare -Ai chaff=([zero]="5" [one]="10" )
14declare -Ar waste=([lineno]="28" [source]="./assoc.tests" [version]="4.0-devel" [pid]="42134" )
15declare -A wheat=([two]="b" [three]="c" [zero]="0" [one]="a" )
16declare -A chaff=(["hello world"]="flip" [zero]="5" [one]="10" )
a0c0a00f
CR
17./assoc.tests: line 38: waste: readonly variable
18./assoc.tests: line 39: unset: waste: cannot unset: readonly variable
19./assoc.tests: line 40: chaff[*]: bad array subscript
20./assoc.tests: line 41: [*]=12: invalid associative array key
f250956c 21declare -A chaff=(["hello world"]="flip" [one]="a" )
3185942a 22flip
f250956c
CR
23argv[1] = <multiple>
24argv[2] = <words>
25argv[3] = <flip>
26argv[4] = <a>
27argv[1] = <multiple words>
3185942a 28argv[2] = <flip>
f250956c
CR
29argv[3] = <a>
30argv[1] = <multiple>
31argv[2] = <words>
32argv[3] = <flip>
33argv[4] = <a>
34argv[1] = <multiple words flip a>
a0c0a00f
CR
35./assoc.tests: line 58: declare: chaff: cannot destroy array variables in this way
36./assoc.tests: line 60: chaff[*]: bad array subscript
37./assoc.tests: line 61: [*]=12: invalid associative array key
f250956c 38declare -A wheat=(["foo bar"]="qux qix" [six]="6" )
3185942a
JA
39argv[1] = <qux>
40argv[2] = <qix>
41argv[1] = <qux qix>
f250956c 42declare -A wheat=(["foo bar"]="qux qix" [six]="6" )
3185942a
JA
43argv[1] = <2>
44argv[1] = <7>
45argv[1] = <qux>
46argv[2] = <qix>
47argv[3] = <blat>
48argv[1] = <qux qix blat>
49argv[1] = <16>
50argv[1] = <16>
f250956c
CR
51argv[1] = <flix>
52argv[2] = <6>
53argv[1] = <foo>
54argv[2] = <bar>
55argv[3] = <six>
56argv[1] = <foo bar>
57argv[2] = <six>
3185942a 588
f250956c
CR
59/sbin /usr/bin /bin /usr/ucb /usr/local/bin . /usr/sbin /bin
60sbin bin bin ucb bin . sbin bin
3185942a
JA
61bin
62/ / / / / / /
63/
64argv[1] = <bin>
65argv[1] = </>
66argv[1] = <sbin>
67argv[1] = </>
688
f250956c
CR
69/sbin /usr/bin /bin /usr/ucb /usr/local/bin . /usr/sbin /bin
70sbin bin bin ucb bin . sbin bin
3185942a
JA
71/ / / / / / /
728
734 -- /bin
f250956c
CR
74^sbin ^usr^bin ^bin ^usr^ucb ^usr^local^bin . ^usr^sbin ^bin
75^sbin ^usr^bin ^bin ^usr^ucb ^usr^local^bin . ^usr^sbin ^bin
76\sbin \usr/bin \bin \usr/ucb \usr/local/bin . \usr/sbin \bin
77\sbin \usr\bin \bin \usr\ucb \usr\local\bin . \usr\sbin \bin
78\sbin \usr\bin \bin \usr\ucb \usr\local\bin . \usr\sbin \bin
0001803f 79([a]=1)
3185942a 80
f250956c
CR
81foo qux
82/usr/sbin/foo /usr/local/bin/qux
3185942a
JA
83hits command
84 0 /sbin/blat
3185942a 85 0 /usr/sbin/foo
f250956c
CR
86 0 /bin/sh
87 0 /usr/local/bin/qux
88blat foo sh qux
89/sbin/blat /usr/sbin/foo /bin/sh /usr/local/bin/qux
3185942a 90
f250956c
CR
91foo qux
92argv[1] = </usr/sbin/foo>
93argv[2] = </usr/local/bin/qux>
94argv[3] = <-l>
3185942a
JA
95alias blat='cd /blat ; echo $PWD'
96alias foo='/usr/sbin/foo'
97alias qux='/usr/local/bin/qux -l'
98alias sh='/bin/bash --login -o posix'
f250956c 99blat foo sh qux
a0c0a00f 100argv[1] = <cd /blat ; echo $PWD>
f250956c 101argv[2] = </usr/sbin/foo>
a0c0a00f 102argv[3] = </bin/bash --login -o posix>
f250956c 103argv[4] = </usr/local/bin/qux -l>
3185942a 104outside: outside
a0c0a00f
CR
105declare -A BASH_ALIASES=()
106declare -A BASH_CMDS=()
f250956c 107declare -A afoo=(["foo bar"]="foo quux" [six]="six" )
3185942a 108argv[1] = <inside:>
f250956c
CR
109argv[2] = <foo quux>
110argv[3] = <six>
3185942a 111outside 2: outside
f250956c
CR
112argv[1] = </barq//fooq>
113argv[1] = <>
114argv[2] = <barq>
115argv[3] = <>
116argv[4] = <fooq>
117argv[1] = </bar!//foo!>
118argv[1] = <>
119argv[2] = <bar!>
120argv[3] = <>
121argv[4] = <foo!>
122argv[1] = </arq//ooq>
123argv[1] = <>
124argv[2] = <arq>
125argv[3] = <>
126argv[4] = <ooq>
127argv[1] = </Barq//Fooq>
128argv[1] = <>
129argv[2] = <Barq>
130argv[3] = <>
131argv[4] = <Fooq>
132argv[1] = </BARQ//FOOQ>
133argv[1] = <>
134argv[2] = <BARQ>
135argv[3] = <>
136argv[4] = <FOOQ>
0001803f
CR
137abc
138def
139def
140./assoc5.sub: line 13: declare: `myarray[foo[bar]=bleh': not a valid identifier
f250956c
CR
141bleh def abc
142myarray=([foo]="bleh" ["]"]="def" ["a]=test1;#a"]="123" ["a]a"]="abc" )
0001803f
CR
143
144123
f250956c 145myarray=([foo]="bleh" ["]"]="def" ["a]=test2;#a"]="def" ["a]=test1;#a"]="123" ["a]a"]="abc" )
0001803f
CR
146bar"bie
147doll
a0c0a00f 148declare -A foo=(["bar\"bie"]="doll" )
0001803f
CR
149bar"bie
150doll
a0c0a00f 151declare -A foo=(["bar\"bie"]="doll" )
0001803f
CR
152bar"bie
153doll
a0c0a00f 154declare -A foo=(["bar\"bie"]="doll" )
0001803f
CR
155bar"bie
156doll
a0c0a00f 157declare -A foo=(["bar\"bie"]="doll" )
0001803f
CR
158bar"bie
159doll
a0c0a00f 160declare -A foo=(["bar\"bie"]="doll" )
0001803f
CR
161bar'bie
162doll
a0c0a00f 163declare -A foo=(["bar'bie"]="doll" )
0001803f
CR
164bar'bie
165doll
a0c0a00f 166declare -A foo=(["bar'bie"]="doll" )
0001803f
CR
167bar'bie
168doll
a0c0a00f 169declare -A foo=(["bar'bie"]="doll" )
0001803f
CR
170bar'bie
171doll
a0c0a00f 172declare -A foo=(["bar'bie"]="doll" )
0001803f
CR
173bar'bie
174doll
a0c0a00f 175declare -A foo=(["bar'bie"]="doll" )
0001803f
CR
176bar$bie
177doll
a0c0a00f 178declare -A foo=(["bar\$bie"]="doll" )
0001803f
CR
179bar[bie
180doll
a0c0a00f 181declare -A foo=(["bar[bie"]="doll" )
0001803f
CR
182bar`bie
183doll
a0c0a00f 184declare -A foo=(["bar\`bie"]="doll" )
0001803f
CR
185bar\]bie
186doll
a0c0a00f 187declare -A foo=(["bar\\]bie"]="doll" )
0001803f
CR
188bar${foo}bie
189doll
a0c0a00f 190declare -A foo=(["bar\${foo}bie"]="doll" )
ac50fbac
CR
191bar
192after printf
193after use: 0
a0c0a00f
CR
194declare -A assoc=([0]="assoc" )
195assoc
196declare -A assoc=([two]="twoless" [three]="three" [one]="onemore" )
197declare -Ar assoc=([two]="twoless" [three]="three" [one]="onemore" )
f250956c 198declare -A b=([")"]="" ["\""]="" ["]"]="" ["\\"]="" ["\`"]="" )
9a51695b 199declare -A b=(["]"]="" ["\`"]="" )
f250956c 200declare -A dict=(["'"]="3" ["\""]="1" ["\\"]="4" ["\`"]="2" )
9a51695b 201./assoc9.sub: line 23: unset: `dict[']': not a valid identifier
f250956c 202./assoc9.sub: line 23: unset: `dict["]': not a valid identifier
9a51695b
CR
203./assoc9.sub: line 23: unset: `dict[\]': not a valid identifier
204./assoc9.sub: line 23: unset: `dict[`]': not a valid identifier
f250956c
CR
205declare -A dict=(["'"]="3" ["\""]="1" ["\\"]="4" ["\`"]="2" )
206declare -A dict=(["'"]="3" ["\""]="1" ["\\"]="4" ["\`"]="2" )
9a51695b
CR
207declare -A dict=()
2084
2094
210a[$b]= 5
211declare -A a=(["80's"]="Depeche Mode" )
212./assoc9.sub: line 71: read: `a[80's]': not a valid identifier
213declare -A a
214declare -A a=(["80's"]="Depeche Mode" )
215./assoc9.sub: line 83: printf: `a[80's]': not a valid identifier
216declare -A a
217declare -A a=(["80's"]="Depeche Mode" )
2186
2191
2201+5
221declare -A a=(["\$(date >&2)"]="5" )
222declare -A myarray=([foo]="bleh" ["foo[bar"]="bleh" )
2f5dfe5a
CR
223./assoc10.sub: line 1: declare: a: cannot convert indexed to associative array
224f: declare -a a
225./assoc10.sub: line 4: declare: a: cannot convert associative to indexed array
226f: declare -A a
227
228f: declare -a a
229main: declare -- a="7"
230f: declare -A a
231main: declare -- a="42"