]>
Commit | Line | Data |
---|---|---|
ac50fbac CR |
1 | one |
2 | two | |
3 | three | |
4 | declare -n fee="flip" | |
5 | declare -n foo="bar" | |
6 | turning off nameref attribute on foo | |
7 | bar | |
8 | after +n foo bar = other | |
9 | one | |
10 | two | |
11 | one | |
12 | expect <one> | |
13 | argv[1] = <one> | |
14 | expect <two> | |
15 | argv[1] = <two> | |
16 | expect <one> | |
17 | one | |
18 | expect <one> | |
19 | one | |
20 | expect <one> | |
21 | argv[1] = <one> | |
22 | changevar: expect <two> | |
23 | argv[1] = <two> | |
24 | expect <two> | |
25 | argv[1] = <two> | |
26 | changevar: expect <three four five> | |
27 | argv[1] = <three four five> | |
28 | expect <three four five> | |
29 | argv[1] = <three four five> | |
a0c0a00f | 30 | ./nameref.tests: line 93: foo: readonly variable |
ac50fbac CR |
31 | ./nameref.tests: line 94: foo: readonly variable |
32 | one | |
33 | one | |
34 | ./nameref.tests: line 106: foo: readonly variable | |
35 | ./nameref.tests: line 103: foo: readonly variable | |
36 | one | |
a0c0a00f CR |
37 | abxde |
38 | abxde | |
ac50fbac CR |
39 | one |
40 | bar | |
41 | ||
42 | ./nameref2.sub: line 5: foo: readonly variable | |
43 | ||
44 | expect <unset> | |
45 | argv[1] = <unset> | |
46 | expect <unset> | |
47 | argv[1] = <unset> | |
48 | expect <bar> | |
49 | argv[1] = <bar> | |
50 | expect <unset> | |
51 | argv[1] = <unset> | |
52 | ./nameref3.sub: line 21: unset: bar: cannot unset: readonly variable | |
53 | expect <two> | |
54 | two | |
55 | expect <two> | |
56 | two | |
57 | three | |
58 | unset | |
59 | four | |
60 | 0 | |
61 | expect <a b> | |
62 | a b | |
63 | expect <foo> | |
64 | foo | |
65 | 1 3 5 7 9 | |
66 | 9 | |
67 | 1 3 42 7 9 | |
68 | 1 3 42 7 9 | |
69 | 9 | |
70 | 1 3 44 7 9 | |
71 | unset | |
72 | expect <a b c d e> | |
73 | argv[1] = <a b c d e> | |
74 | expect <zero> <one> <seven> <three> <four> | |
75 | argv[1] = <zero> | |
76 | argv[2] = <one> | |
77 | argv[3] = <seven> | |
78 | argv[4] = <three> | |
79 | argv[5] = <four> | |
80 | 16 | |
81 | expect <4> | |
82 | 4 | |
83 | expect <4> | |
84 | 4 | |
85 | expect <4> | |
86 | 4 | |
87 | expect <one> | |
88 | one | |
89 | expect <one> | |
90 | one | |
91 | expect <one> | |
92 | one | |
93 | expect <four> | |
94 | four | |
95 | errors = 0 | |
96 | 1 | |
97 | 2 | |
98 | v1: 1 | |
99 | v2: 2 | |
100 | ref -> first, value: I am first | |
101 | ref -> second, value: I am in the middle | |
102 | ref -> third, value: I am last | |
103 | final state: ref -> third, value: I am last | |
104 | ref -> one, value: 1 | |
105 | ref -> two, value: 2 | |
106 | ref -> three, value: 3 | |
107 | final state: ref -> three, value: 3 | |
108 | ./nameref5.sub: line 43: unset: three: cannot unset: readonly variable | |
109 | ref -> one, value: 1 | |
110 | ref -> two, value: 2 | |
111 | ref -> three, value: 3 | |
112 | final state: ref -> three, value: 3 | |
113 | ./nameref6.sub: line 2: typeset: x: nameref variable self references not allowed | |
a0c0a00f | 114 | ./nameref6.sub: line 5: typeset: x[3]: reference variable cannot be an array |
ac50fbac CR |
115 | ./nameref6.sub: line 12: typeset: x: reference variable cannot be an array |
116 | the -- 1 | |
117 | 42 -- 0 | |
118 | y -- 0 | |
119 | 2 -- 0 | |
120 | 2 -- 0 | |
121 | y -- 0 | |
122 | bar | |
123 | unset | |
a0c0a00f CR |
124 | ./nameref8.sub: line 3: typeset: warning: v: circular name reference |
125 | ./nameref8.sub: line 3: warning: v: circular name reference | |
126 | ./nameref8.sub: line 5: warning: v: circular name reference | |
ac50fbac CR |
127 | inside |
128 | inside: two | |
129 | outside: | |
a0c0a00f CR |
130 | ./nameref8.sub: line 29: typeset: warning: x: circular name reference |
131 | ./nameref8.sub: line 29: warning: x: circular name reference | |
132 | ./nameref8.sub: line 31: warning: x: circular name reference | |
ac50fbac | 133 | foo |
a0c0a00f CR |
134 | ./nameref8.sub: line 38: typeset: warning: v: circular name reference |
135 | ./nameref8.sub: line 38: warning: v: circular name reference | |
136 | ./nameref8.sub: line 38: warning: v: circular name reference | |
ac50fbac CR |
137 | local |
138 | ./nameref8.sub: line 47: typeset: v: nameref variable self references not allowed | |
139 | ./nameref8.sub: line 54: warning: x: circular name reference | |
140 | ./nameref8.sub: line 55: warning: x: circular name reference | |
141 | x = | |
a0c0a00f CR |
142 | idx2 |
143 | idX2 | |
144 | idx2 | |
145 | idX2 | |
146 | declare -n foo="x[\$zero]" | |
147 | 42 | |
148 | declare -a x=([0]="4") | |
149 | declare -n foo="x[\$(echo 0)]" | |
150 | 4 | |
151 | comsub | |
152 | x[i=0] | |
153 | comsub | |
154 | 4 | |
155 | comsub | |
156 | 4 | |
157 | comsub | |
158 | 4 | |
159 | declare -n foo="somevariable" | |
160 | ./nameref10.sub: line 38: typeset: somevariable: not found | |
161 | foo = | |
162 | declare -n foo="somevariable" | |
163 | declare -A somevariable=([jug]="brown" ) | |
164 | declare -n foo="somevariable" | |
165 | declare -A somevariable=([jug]="brown" ) | |
166 | declare -n foo="somevariable" | |
167 | ./nameref10.sub: line 49: typeset: somevariable: not found | |
168 | ./nameref10.sub: line 51: typeset: foo: not found | |
169 | ./nameref10.sub: line 51: typeset: somevariable: not found | |
170 | declare -n foo="bar" | |
171 | ./nameref10.sub: line 55: typeset: bar: not found | |
172 | declare -n foo="bar" | |
173 | ./nameref10.sub: line 57: typeset: bar: not found | |
174 | declare -n foo="bar" | |
175 | declare -i bar="8" | |
176 | 8 | |
177 | declare -n foo="bar" | |
178 | ./nameref10.sub: line 64: typeset: bar: not found | |
179 | ./nameref11.sub: line 1: declare: `/': invalid variable name for name reference | |
180 | ./nameref11.sub: line 2: declare: `/': invalid variable name for name reference | |
181 | ./nameref11.sub: line 3: `/': not a valid identifier | |
182 | ./nameref11.sub: line 4: declare: `/': not a valid identifier | |
183 | ./nameref11.sub: line 5: `/': not a valid identifier | |
184 | 1) / | |
185 | #? ./nameref11.sub: line 6: `/': not a valid identifier | |
186 | x | |
187 | ||
188 | ./nameref11.sub: line 7: ((: `0': not a valid identifier | |
189 | ./nameref11.sub: line 8: declare: `0': invalid variable name for name reference | |
190 | ./nameref11.sub: line 9: declare: `/': invalid variable name for name reference | |
191 | ./nameref11.sub: line 10: declare: `/': invalid variable name for name reference | |
192 | / | |
193 | ./nameref11.sub: line 12: `/': not a valid identifier | |
194 | ./nameref11.sub: line 13: exec: `10': not a valid identifier | |
195 | ./nameref11.sub: line 13: r: cannot assign fd to variable | |
196 | ./nameref11.sub: line 14: warning: r: removing nameref attribute | |
197 | 63 | |
198 | ./nameref11.sub: line 15: declare: RO: readonly variable | |
199 | ./nameref11.sub: line 15: RO: readonly variable | |
200 | ./nameref11.sub: line 16: declare: `/': invalid variable name for name reference | |
201 | / | |
202 | ./nameref11.sub: line 17: declare: `/': invalid variable name for name reference | |
203 | ./nameref11.sub: illegal option -- h | |
204 | ./nameref11.sub: line 18: getopts: `?': not a valid identifier | |
205 | ./nameref11.sub: line 19: warning: r: removing nameref attribute | |
206 | declare -a r=() | |
207 | ./nameref11.sub: line 20: declare: r: reference variable cannot be an array | |
208 | ./nameref11.sub: line 21: printf: `/': not a valid identifier | |
209 | ./nameref11.sub: line 23: `': not a valid identifier | |
210 | ./nameref11.sub: line 24: declare: `': not a valid identifier | |
211 | ./nameref11.sub: line 25: `': not a valid identifier | |
212 | ./nameref11.sub: line 26: printf: `': not a valid identifier | |
213 | ./nameref11.sub: line 27: declare: `': invalid variable name for name reference | |
214 | declare -r ROVAR="42" | |
215 | ./nameref11.sub: line 32: ROVAR: readonly variable | |
216 | ./nameref11.sub: line 32: ROVAR: cannot unset: readonly variable | |
217 | declare -r ROVAR="42" | |
218 | ./nameref11.sub | |
219 | ./nameref11.sub: line 34: `@': not a valid identifier | |
220 | ./nameref11.sub | |
221 | declare -n ref="x" | |
222 | ./nameref11.sub: line 39: RO: readonly variable | |
223 | declare -r RO_PID | |
224 | ./nameref11.sub: line 39: RO: cannot unset: readonly variable | |
225 | declare -r RO="x" | |
226 | ./nameref11.sub: line 39: declare: RO_PID: not found | |
227 | ./nameref11.sub: line 41: RO2: readonly variable | |
228 | declare -r RO2="a" | |
229 | ./nameref12.sub: line 6: declare: `/': invalid variable name for name reference | |
230 | ./nameref12.sub: line 9: declare: `%': invalid variable name for name reference | |
231 | ./nameref12.sub: line 13: `^': not a valid identifier | |
232 | declare -n r | |
233 | declare -a foo | |
234 | declare -a foo=([0]="7") | |
235 | ./nameref12.sub: line 26: declare: `42': not a valid identifier | |
236 | ./nameref12.sub: line 27: declare: x: not found | |
237 | declare -nr RO="foo" | |
238 | / | |
239 | ./nameref12.sub: line 45: declare: `7*6': not a valid identifier | |
240 | ./nameref12.sub: line 45: declare: foo: not found | |
241 | ./nameref12.sub: line 47: `7*6': not a valid identifier | |
242 | declare -n ref="var" | |
243 | declare -n ref="var" | |
244 | ./nameref12.sub: line 74: readonly: `var[0]': not a valid identifier | |
245 | declare -- var="foo" | |
246 | declare -r var2="foo" | |
247 | declare -n ref="var" | |
248 | declare -a var=([0]="foo") | |
249 | ./nameref12.sub: line 91: `': not a valid identifier | |
250 | declare -n ref | |
251 | declare -- ref="global" | |
252 | declare -a var=([0]="foo2") | |
253 | ./nameref12.sub: line 100: declare: global: not found | |
254 | declare -- a | |
255 | declare -n r="a" | |
256 | declare -- a | |
257 | declare -n r="a" | |
258 | 0 | |
259 | declare -n r="P" | |
260 | declare -n ref="var" | |
261 | declare -- a | |
262 | declare -n r="a" | |
263 | 0 | |
264 | declare -n r | |
265 | declare -n r | |
266 | ./nameref13.sub: line 88: typeset: `12345': invalid variable name for name reference | |
267 | declare -n foo | |
268 | ./nameref13.sub: line 97: typeset: `12345': invalid variable name for name reference | |
269 | declare -n foo | |
270 | declare -nx ref="var" | |
271 | var | |
272 | var | |
273 | var | |
274 | var | |
275 | foo | |
276 | foo | |
277 | foo | |
278 | foo | |
279 | before | |
280 | declare -n ref="var" | |
281 | ./nameref14.sub: line 23: typeset: var: not found | |
282 | first | |
283 | declare -n ref="var" | |
284 | declare -x var="xxx" | |
285 | invalid | |
286 | declare -n ref="var" | |
287 | declare -x var="5" | |
288 | after | |
289 | declare -n ref="var" | |
290 | ./nameref14.sub: line 32: typeset: var: not found | |
291 | declare -n ref="var" | |
292 | ./nameref15.sub: line 1: local: warning: a: circular name reference | |
293 | ./nameref15.sub: line 1: warning: a: circular name reference | |
294 | ./nameref15.sub: line 1: `a[0]': not a valid identifier | |
295 | declare -a a=([0]="0") | |
296 | ./nameref15.sub: line 1: local: warning: a: circular name reference | |
297 | ./nameref15.sub: line 1: warning: a: circular name reference | |
298 | ./nameref15.sub: line 1: warning: a: circular name reference | |
299 | declare -a a=([0]="X") | |
300 | declare -a b=([0]="X") | |
301 | ./nameref15.sub: line 1: local: warning: a: circular name reference | |
302 | ./nameref15.sub: line 1: warning: a: circular name reference | |
303 | ./nameref15.sub: line 1: `a[0]': not a valid identifier | |
304 | declare -a b=([0]="0") | |
305 | ./nameref15.sub: line 19: typeset: warning: ref: circular name reference | |
306 | ./nameref15.sub: line 19: warning: ref: circular name reference | |
307 | ./nameref15.sub: line 20: warning: ref: circular name reference | |
308 | ./nameref15.sub: line 21: warning: ref: circular name reference | |
309 | inside | |
310 | outside X | |
311 | ./nameref15.sub: line 29: typeset: ref: nameref variable self references not allowed | |
312 | ./nameref15.sub: line 31: ref: nameref variable self references not allowed | |
313 | declare -n ref="re" | |
314 | declare -n ref="re" | |
315 | declare -- re="4" | |
316 | 4 | |
317 | declare -n foo="var[@]" | |
318 | declare -n ref="var[@]" | |
319 | ./nameref15.sub: line 48: var[@]: bad array subscript | |
320 | declare -n bar="var[@]" | |
321 | ./nameref15.sub: line 53: var[@]: bad array subscript | |
322 | declare -n a="b" | |
323 | declare -n b="a[1]" | |
324 | ./nameref15.sub: line 61: warning: a: removing nameref attribute | |
325 | declare -a a=([1]="foo") | |
326 | declare -n b="a[1]" | |
327 | ./nameref15.sub: line 66: warning: a: removing nameref attribute | |
328 | declare -a a=([1]="foo") | |
329 | declare -n b="a[1]" | |
330 | declare -n n="v" | |
331 | declare -a v=([1]="1") | |
332 | ./nameref15.sub: line 82: typeset: n: not found | |
333 | declare -a v=([0]="0" [1]="1") | |
334 | declare -n n="v[1]" | |
335 | declare -a v=([0]="0") | |
336 | declare -n r1="y" | |
337 | declare -n r2="x" | |
338 | ./nameref16.sub: line 12: typeset: x: not found | |
339 | ./nameref16.sub: line 12: typeset: y: not found | |
340 | declare -n r1="y" | |
341 | declare -n r2="x" | |
342 | ./nameref16.sub: line 21: typeset: x: not found | |
343 | ./nameref16.sub: line 21: typeset: y: not found | |
344 | declare -n r1="y" | |
345 | declare -n r2="x" | |
346 | ./nameref16.sub: line 33: typeset: x: not found | |
347 | ./nameref16.sub: line 33: typeset: y: not found | |
348 | declare -n r1="y" | |
349 | declare -n r2="x" | |
350 | declare -- x="one" | |
351 | declare -- y="two" | |
352 | ./nameref17.sub: line 8: declare: bar: not found | |
353 | ./nameref17.sub: line 9: unset: foo0: cannot unset: readonly variable | |
354 | declare -nr foo0="bar" | |
355 | declare -nr foo0="bar" | |
356 | declare -- bar | |
357 | ./nameref17.sub: line 14: declare: foo0: readonly variable | |
358 | ./nameref17.sub: line 15: declare: foo0: readonly variable | |
359 | declare -nr foo1 | |
360 | ./nameref17.sub: line 24: typeset: foo1: readonly variable | |
361 | declare -nr foo1 | |
362 | declare -n foo2="bar" | |
363 | declare -r bar | |
364 | ./nameref17.sub: line 35: bar: readonly variable | |
365 | ./nameref17.sub: line 36: typeset: bar: readonly variable | |
366 | declare -n foo2="bar" | |
367 | declare -r bar | |
368 | declare -- bar3="three" | |
369 | ./nameref17.sub: line 46: unset: foo3: cannot unset: readonly variable | |
370 | ./nameref17.sub: line 49: declare: bar3: readonly variable | |
371 | declare -nr foo3="bar3" | |
372 | declare -r bar3="three" | |
373 | ./nameref17.sub: line 51: declare: foo3: readonly variable | |
374 | declare -nr foo4="bar4" | |
375 | declare -- bar4="four" | |
376 | ./nameref17.sub: line 63: typeset: foo4: readonly variable | |
377 | declare -nr foo4="bar4" | |
378 | declare -nr foo4="bar4" | |
379 | declare -- bar4="four" | |
380 | ./nameref17.sub: line 79: typeset: foo4: readonly variable | |
381 | declare -nr foo4="bar4" | |
382 | declare -nr foo4="bar4" | |
383 | declare -- bar4="four" | |
384 | declare -nr foo5 | |
385 | declare -r foo5 | |
386 | declare -nr foo5 | |
387 | declare -r foo5 | |
388 | ./nameref18.sub: line 2: mapfile: `XXX[0]': not a valid identifier | |
389 | ./nameref18.sub: line 3: declare: XXX[0]: not found | |
390 | ./nameref18.sub: line 9: `XXX[0]': not a valid identifier | |
391 | ./nameref18.sub: line 10: declare: XXX[0]: not found | |
392 | declare -n ref="XXX[0]" | |
393 | declare -a XXX=([0]="4") | |
394 | ./nameref18.sub: line 24: `XXX[0]': not a valid identifier | |
395 | declare -n ref="XXX[0]" | |
396 | ./nameref18.sub: line 25: declare: XXX[0]: not found | |
397 | ./nameref18.sub: line 29: read: `XXX[0]': not a valid identifier | |
398 | ./nameref18.sub: line 30: declare: XXX[0]: not found | |
399 | ./nameref18.sub: line 35: `XXX[0]': not a valid identifier | |
400 | declare -n ref="XXX[0]" | |
401 | ./nameref18.sub: line 38: `XXX[0]': not a valid identifier | |
402 | ./nameref18.sub: line 38: declare: XXX[0]: not found | |
403 | declare -n ref="var[123]" | |
404 | ./nameref18.sub: line 46: declare: var[123]: not found | |
405 | declare -a var=([123]="") | |
406 | declare -n ref="var[123]" | |
407 | ./nameref18.sub: line 50: declare: var[123]: not found | |
408 | declare -a var=([123]="") | |
409 | declare -n ref="var[123]" | |
410 | ./nameref18.sub: line 54: declare: var[123]: not found | |
411 | declare -a var=([123]="X") |