6 turning off nameref attribute on foo
8 after +n foo bar = other
22 changevar: expect <two>
26 changevar: expect <three four five>
27 argv[1] = <three four five>
28 expect <three four five>
29 argv[1] = <three four five>
30 ./nameref.tests: line 106: foo: readonly variable
31 ./nameref.tests: line 107: foo: readonly variable
34 ./nameref.tests: line 119: foo: readonly variable
35 ./nameref.tests: line 116: foo: readonly variable
42 ./nameref2.sub: line 5: foo: readonly variable
51 ./nameref3.sub: line 29: foo: invalid indirect expansion
52 ./nameref3.sub: line 34: unset: bar: cannot unset: readonly variable
74 expect <zero> <one> <seven> <three> <four>
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
106 ref -> three, value: 3
107 final state: ref -> three, value: 3
108 ./nameref5.sub: line 56: unset: three: cannot unset: readonly variable
111 ref -> three, value: 3
112 final state: ref -> three, value: 3
113 ./nameref6.sub: line 15: typeset: x: nameref variable self references not allowed
114 ./nameref6.sub: line 18: typeset: x[3]: reference variable cannot be an array
115 ./nameref6.sub: line 25: typeset: x: reference variable cannot be an array
124 ./nameref8.sub: line 16: typeset: warning: v: circular name reference
125 ./nameref8.sub: line 16: warning: v: circular name reference
126 ./nameref8.sub: line 18: warning: v: circular name reference
130 ./nameref8.sub: line 42: typeset: warning: x: circular name reference
131 ./nameref8.sub: line 42: warning: x: circular name reference
132 ./nameref8.sub: line 44: warning: x: circular name reference
134 ./nameref8.sub: line 51: typeset: warning: v: circular name reference
135 ./nameref8.sub: line 51: warning: v: circular name reference
136 ./nameref8.sub: line 51: warning: v: circular name reference
138 ./nameref8.sub: line 60: typeset: v: nameref variable self references not allowed
139 ./nameref8.sub: line 67: warning: x: circular name reference
140 ./nameref8.sub: line 68: warning: x: circular name reference
146 declare -n foo="x[\$zero]"
148 declare -a x=([0]="4")
149 declare -n foo="x[\$(echo 0)]"
159 declare -n foo="somevariable"
160 ./nameref10.sub: line 51: typeset: somevariable: not found
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 62: typeset: somevariable: not found
168 ./nameref10.sub: line 64: typeset: foo: not found
169 ./nameref10.sub: line 64: typeset: somevariable: not found
171 ./nameref10.sub: line 68: typeset: bar: not found
173 ./nameref10.sub: line 70: typeset: bar: not found
178 ./nameref10.sub: line 77: typeset: bar: not found
179 ./nameref11.sub: line 14: declare: `/': invalid variable name for name reference
180 ./nameref11.sub: line 15: declare: `/': invalid variable name for name reference
181 ./nameref11.sub: line 16: `/': not a valid identifier
182 ./nameref11.sub: line 17: declare: `/': not a valid identifier
183 ./nameref11.sub: line 18: `/': not a valid identifier
185 #? ./nameref11.sub: line 19: `/': not a valid identifier
188 ./nameref11.sub: line 20: ((: `0': not a valid identifier
189 ./nameref11.sub: line 21: declare: `0': invalid variable name for name reference
190 ./nameref11.sub: line 22: declare: `/': invalid variable name for name reference
191 ./nameref11.sub: line 23: declare: `/': invalid variable name for name reference
193 ./nameref11.sub: line 25: `/': not a valid identifier
194 ./nameref11.sub: line 26: exec: `10': not a valid identifier
195 ./nameref11.sub: line 26: r: cannot assign fd to variable
196 ./nameref11.sub: line 27: warning: r: removing nameref attribute
198 ./nameref11.sub: line 28: declare: RO: readonly variable
199 ./nameref11.sub: line 28: RO: readonly variable
200 ./nameref11.sub: line 29: declare: `/': invalid variable name for name reference
202 ./nameref11.sub: line 30: declare: `/': invalid variable name for name reference
203 ./nameref11.sub: illegal option -- h
204 ./nameref11.sub: line 31: getopts: `?': not a valid identifier
205 ./nameref11.sub: line 32: warning: r: removing nameref attribute
207 ./nameref11.sub: line 33: declare: r: reference variable cannot be an array
208 ./nameref11.sub: line 34: printf: `/': not a valid identifier
209 ./nameref11.sub: line 36: `': not a valid identifier
210 ./nameref11.sub: line 37: declare: `': not a valid identifier
211 ./nameref11.sub: line 38: `': not a valid identifier
212 ./nameref11.sub: line 39: printf: `': not a valid identifier
213 ./nameref11.sub: line 40: declare: `': invalid variable name for name reference
214 declare -r ROVAR="42"
215 ./nameref11.sub: line 45: ROVAR: readonly variable
216 ./nameref11.sub: line 45: ROVAR: cannot unset: readonly variable
217 declare -r ROVAR="42"
219 ./nameref11.sub: line 47: `@': not a valid identifier
222 ./nameref11.sub: line 52: RO: readonly variable
224 ./nameref11.sub: line 52: RO: cannot unset: readonly variable
226 ./nameref11.sub: line 52: declare: RO_PID: not found
227 ./nameref11.sub: line 54: RO2: readonly variable
230 ./nameref11.sub: line 65: typeset: `2': invalid variable name for name reference
232 ./nameref11.sub: line 70: typeset: `2': invalid variable name for name reference
234 ./nameref11.sub: line 75: foo[2]: invalid indirect expansion
235 ./nameref11.sub: line 76: bar: invalid indirect expansion
236 ./nameref12.sub: line 19: declare: `/': invalid variable name for name reference
237 ./nameref12.sub: line 22: declare: `%': invalid variable name for name reference
238 ./nameref12.sub: line 26: `^': not a valid identifier
241 declare -a foo=([0]="7")
242 ./nameref12.sub: line 39: declare: `42': not a valid identifier
243 ./nameref12.sub: line 40: declare: x: not found
246 ./nameref12.sub: line 58: declare: `7*6': not a valid identifier
247 ./nameref12.sub: line 58: declare: foo: not found
248 ./nameref12.sub: line 60: `7*6': not a valid identifier
251 ./nameref12.sub: line 87: readonly: `var[0]': not a valid identifier
253 declare -r var2="foo"
255 declare -a var=([0]="foo")
256 ./nameref12.sub: line 104: `': not a valid identifier
258 declare -- ref="global"
259 declare -a var=([0]="foo2")
260 ./nameref12.sub: line 113: declare: global: not found
273 ./nameref13.sub: line 101: typeset: `12345': invalid variable name for name reference
275 ./nameref13.sub: line 110: typeset: `12345': invalid variable name for name reference
277 declare -nx ref="var"
288 ./nameref14.sub: line 36: typeset: var: not found
297 ./nameref14.sub: line 45: typeset: var: not found
299 ./nameref15.sub: line 14: local: warning: a: circular name reference
300 ./nameref15.sub: line 14: warning: a: circular name reference
301 ./nameref15.sub: line 14: `a[0]': not a valid identifier
302 declare -a a=([0]="0")
303 ./nameref15.sub: line 14: local: warning: a: circular name reference
304 ./nameref15.sub: line 14: warning: a: circular name reference
305 ./nameref15.sub: line 14: warning: a: circular name reference
306 declare -a a=([0]="X")
307 declare -a b=([0]="X")
308 ./nameref15.sub: line 14: local: warning: a: circular name reference
309 ./nameref15.sub: line 14: warning: a: circular name reference
310 ./nameref15.sub: line 14: `a[0]': not a valid identifier
311 declare -a b=([0]="0")
312 ./nameref15.sub: line 32: typeset: warning: ref: circular name reference
313 ./nameref15.sub: line 32: warning: ref: circular name reference
314 ./nameref15.sub: line 33: warning: ref: circular name reference
315 ./nameref15.sub: line 34: warning: ref: circular name reference
319 ./nameref15.sub: line 45: typeset: warning: xxx: circular name reference
320 ./nameref15.sub: line 45: warning: xxx: circular name reference
321 ./nameref15.sub: line 46: warning: xxx: circular name reference
323 ./nameref15.sub: line 48: warning: xxx: circular name reference
324 xxx_func: inside: xxx = foo
326 ./nameref15.sub: line 59: typeset: ref: nameref variable self references not allowed
327 ./nameref15.sub: line 61: ref: nameref variable self references not allowed
332 declare -n foo="var[@]"
333 declare -n ref="var[@]"
334 ./nameref15.sub: line 78: var[@]: bad array subscript
335 declare -n bar="var[@]"
336 ./nameref15.sub: line 83: var[@]: bad array subscript
339 ./nameref15.sub: line 91: warning: a: removing nameref attribute
340 declare -a a=([1]="foo")
342 ./nameref15.sub: line 96: warning: a: removing nameref attribute
343 declare -a a=([1]="foo")
346 declare -a v=([1]="1")
347 ./nameref15.sub: line 112: typeset: n: not found
348 declare -a v=([0]="0" [1]="1")
350 declare -a v=([0]="0")
353 ./nameref16.sub: line 25: typeset: x: not found
354 ./nameref16.sub: line 25: typeset: y: not found
357 ./nameref16.sub: line 34: typeset: x: not found
358 ./nameref16.sub: line 34: typeset: y: not found
361 ./nameref16.sub: line 46: typeset: x: not found
362 ./nameref16.sub: line 46: typeset: y: not found
367 ./nameref17.sub: line 21: declare: bar: not found
368 ./nameref17.sub: line 22: unset: foo0: cannot unset: readonly variable
369 declare -nr foo0="bar"
370 declare -nr foo0="bar"
372 ./nameref17.sub: line 27: declare: foo0: readonly variable
373 ./nameref17.sub: line 28: declare: foo0: readonly variable
375 ./nameref17.sub: line 37: typeset: foo1: readonly variable
377 declare -n foo2="bar"
379 ./nameref17.sub: line 48: bar: readonly variable
380 ./nameref17.sub: line 49: typeset: bar: readonly variable
381 declare -n foo2="bar"
383 declare -- bar3="three"
384 ./nameref17.sub: line 59: unset: foo3: cannot unset: readonly variable
385 ./nameref17.sub: line 62: declare: bar3: readonly variable
386 declare -nr foo3="bar3"
387 declare -r bar3="three"
388 ./nameref17.sub: line 64: declare: foo3: readonly variable
389 declare -nr foo4="bar4"
390 declare -- bar4="four"
391 ./nameref17.sub: line 76: typeset: foo4: readonly variable
392 declare -nr foo4="bar4"
393 declare -nr foo4="bar4"
394 declare -- bar4="four"
395 ./nameref17.sub: line 92: typeset: foo4: readonly variable
396 declare -nr foo4="bar4"
397 declare -nr foo4="bar4"
398 declare -- bar4="four"
403 ./nameref18.sub: line 15: mapfile: `XXX[0]': not a valid identifier
404 ./nameref18.sub: line 16: declare: XXX[0]: not found
405 ./nameref18.sub: line 22: `XXX[0]': not a valid identifier
406 ./nameref18.sub: line 23: declare: XXX[0]: not found
407 declare -n ref="XXX[0]"
408 declare -a XXX=([0]="4")
409 ./nameref18.sub: line 37: `XXX[0]': not a valid identifier
410 declare -n ref="XXX[0]"
411 ./nameref18.sub: line 38: declare: XXX[0]: not found
412 ./nameref18.sub: line 42: read: `XXX[0]': not a valid identifier
413 ./nameref18.sub: line 43: declare: XXX[0]: not found
414 ./nameref18.sub: line 48: `XXX[0]': not a valid identifier
415 declare -n ref="XXX[0]"
416 ./nameref18.sub: line 51: `XXX[0]': not a valid identifier
417 ./nameref18.sub: line 51: declare: XXX[0]: not found
418 declare -n ref="var[123]"
419 ./nameref18.sub: line 59: declare: var[123]: not found
420 declare -a var=([123]="")
421 declare -n ref="var[123]"
422 ./nameref18.sub: line 63: declare: var[123]: not found
423 declare -a var=([123]="")
424 declare -n ref="var[123]"
425 ./nameref18.sub: line 67: declare: var[123]: not found
426 declare -a var=([123]="X")
429 ./nameref19.sub: line 22: declare: bar: not found
436 declare -- bar="Hello World!"
438 declare -- bar="Hello World!"
443 declare -a v=([0]="Y")
447 declare -a var=([0]="X")
449 declare -a var=([0]="X")
451 ./nameref20.sub: line 36: declare: var: not found
453 declare -a foo=([0]="X")
455 declare -a var=([0]="X")
457 ./nameref20.sub: line 51: declare: ref: not found
458 ./nameref20.sub: line 51: declare: var: not found
462 ./nameref20.sub: line 58: declare: ref: not found
463 ./nameref20.sub: line 58: declare: var: not found
465 declare -a var=([0]="Y")
470 ./nameref20.sub: line 74: declare: var: not found
473 declare -A var=([2]="" )
475 declare -A var=([2]="" )
477 declare -a var=([2]="")
479 declare -a var=([2]="")
481 declare -ai var=([1]="0")
483 declare -ai var=([1]="0")