1
2./array.tests: line 28: syntax error near unexpected token `&'
3./array.tests: line 28: `test=(first & second)'
41
5abcde
6abcde
7abcde bdef
8abcde bdef
9declare -a BASH_ARGC=()
10declare -a BASH_ARGV=()
11declare -a BASH_LINENO=([0]="0")
12declare -a BASH_SOURCE=([0]="./array.tests")
13declare -a DIRSTACK=()
14declare -a FUNCNAME
15declare -a a=([0]="abcde" [1]="" [2]="bdef")
16declare -a b
17declare -ar c
18abcde bdef
19abcde bdef
20abcde
21abcde
22abcde
23
24bdef
25hello world
2611
273
28bdef hello world test expression test 2
29./array.tests: line 92: readonly: `a[5]': not a valid identifier
30declare -ar a=([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")
31declare -ar c
32declare -ar a=([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")
33declare -ar c
34readonly -a a=([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")
35readonly -a c
36a test
37declare -a BASH_ARGC=()
38declare -a BASH_ARGV=()
39declare -a BASH_LINENO=([0]="0")
40declare -a BASH_SOURCE=([0]="./array.tests")
41declare -a DIRSTACK=()
42declare -a FUNCNAME
43declare -ar a=([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")
44declare -a b=([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd")
45declare -ar c
46declare -a d=([1]="" [2]="bdef" [5]="hello world" [6]="test" [9]="ninth element")
47declare -a e=([0]="test")
48declare -a f=([0]="" [1]="bdef" [2]="hello world" [3]="test" [4]="ninth element")
49./array.tests: line 116: a: readonly variable
50./array.tests: line 118: b[]: bad array subscript
51./array.tests: line 119: b[*]: bad array subscript
52this
53./array.tests: line 122: c[-2]: bad array subscript
54./array.tests: line 123: c: bad array subscript
55
56./array.tests: line 125: d[7]: cannot assign list to array member
57./array.tests: line 127: []=abcde: bad array subscript
58./array.tests: line 127: [*]=last: cannot assign to non-numeric index
59./array.tests: line 127: [-65]=negative: bad array subscript
60declare -a BASH_ARGC=()
61declare -a BASH_ARGV=()
62declare -a BASH_LINENO=([0]="0")
63declare -a BASH_SOURCE=([0]="./array.tests")
64declare -a DIRSTACK=()
65declare -a FUNCNAME
66declare -ar a=([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")
67declare -a b=([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd")
68declare -ar c
69declare -a d=([1]="test test")
70declare -a f=([0]="" [1]="bdef" [2]="hello world" [3]="test" [4]="ninth element")
71./array.tests: line 135: unset: ps1: not an array variable
72./array.tests: line 139: declare: c: cannot destroy array variables in this way
73this of
74this is a test of read using arrays
75this test
76this is a test of arrays
77declare -a BASH_ARGC=()
78declare -a BASH_ARGV=()
79declare -a BASH_LINENO=([0]="0")
80declare -a BASH_SOURCE=([0]="./array.tests")
81declare -a DIRSTACK=()
82declare -a FUNCNAME
83declare -ar a=([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")
84declare -a b=([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd")
85declare -ar c
86declare -a d=([1]="test test")
87declare -a f=([0]="" [1]="bdef" [2]="hello world" [3]="test" [4]="ninth element")
88declare -a rv=([0]="this" [1]="is" [2]="a" [3]="test" [4]="of" [5]="read" [6]="using" [7]="arrays")
89abde
90abde
91bbb
92efgh
93wxyz
94wxyz
95./array.tests
96a
97b c
98d
99e f g
100h
101./array.tests
102a
103b c
104d
105e f g
106h
107/bin /usr/bin /usr/ucb /usr/local/bin . /sbin /usr/sbin
108bin bin ucb bin . sbin sbin
109bin
110/ / / / / /
111/
112argv[1] = <bin>
113argv[1] = </>
114argv[1] = <sbin>
115argv[1] = </>
116\bin \usr/bin \usr/ucb \usr/local/bin . \sbin \usr/sbin
117\bin \usr\bin \usr\ucb \usr\local\bin . \sbin \usr\sbin
118\bin \usr\bin \usr\ucb \usr\local\bin . \sbin \usr\sbin
1194 -- 4
1207 -- 7
12155
12249
1236 -- 6
12442 14 44
125grep [ 123 ] *
1266 7 9
1276 7 9 5
128length = 3
129value = new1 new2 new3
130./array.tests: line 255: narray: unbound variable
131./array1.sub: line 1: syntax error near unexpected token `('
132./array1.sub: line 1: `printf "%s\n" -a a=(a 'b  c')'
133./array2.sub: line 1: declare: `[]=asdf': not a valid identifier
134./array2.sub: line 2: a[]: bad array subscript
135./array2.sub: line 4: syntax error near unexpected token `('
136./array2.sub: line 4: `declare -a ''=(a 'b c')'
1379
1389
139
140
1417 8 9
1428 11
1438 11
1446
1456
146nordholz
1478
1488
1498
150
151a b c d e f g
152for case if then else
153<> < > !
15412 14 16 18 20
1554414758999202
156aaa bbb
157./array.tests: line 305: syntax error near unexpected token `<>'
158./array.tests: line 305: `metas=( <> < > ! )'
159./array.tests: line 306: syntax error near unexpected token `<>'
160./array.tests: line 306: `metas=( [1]=<> [2]=< [3]=> [4]=! )'
161abc 3
162case 4
163abc case if then else 5
164abc case if then else 5
1650
166case 4
167case if then else 5
168case if then else 5
169argv[1] = <0>
170argv[2] = <1>
171argv[3] = <4>
172argv[4] = <10>
173argv[1] = <0>
174argv[2] = <1>
175argv[3] = <4>
176argv[4] = <10>
177argv[1] = <0>
178argv[2] = <1>
179argv[3] = <4>
180argv[4] = <10>
181argv[1] = <0 1 4 10>
182include null element -- expect one
183one
184include unset element -- expect three five
185three five
186start at unset element -- expect five seven
187five seven
188too many elements -- expect three five seven
189three five seven
190positive offset - expect five seven
191five seven
192negative offset to unset element - expect seven
193seven
194positive offset 2 - expect seven
195seven
196negative offset 2 - expect seven
197seven
198out-of-range offset
199
200e
2014
2021 4 7 10
203'b
204b  c
205$0
206declare -a A=([0]="X=a" [1]="b")
207t
208[3]=abcde r s t u v
209e
2109
2112
212a b c
213argv[1] = <-iname 'a>
214argv[2] = <-iname 'b>
215argv[3] = <-iname 'c>
216'hey'
217hey
218''hey
219'hey'
220argv[1] = <c>
221argv[2] = <d>
222argv[3] = <e>
223argv[4] = <f>
224argv[1] = <c d>
225argv[2] = <e f>
226argv[1] = <c d>
227argv[2] = <e f>
228argv[1] = <c d>
229argv[2] = <e f>
230argv[1] = <-iname 'abc>
231argv[2] = <-iname 'def>
232argv[1] = <-iname 'abc>
233argv[2] = <-iname 'def>
234argv[1] = <-iname>
235argv[2] = <abc -iname def>
236argv[1] = <-iname 'abc>
237argv[2] = <-iname 'def>
238argv[1] = <-iname>
239argv[2] = <abc -iname def>
240argv[1] = <-iname 'abc>
241argv[2] = <-iname 'def>
242argv[1] = <-iname 'abc>
243argv[2] = <-iname 'def>
244argv[1] = <-iname>
245argv[2] = <abc -iname def>
246*.* OK
2471
248a1 2 3c
249argv[1] = <var with spaces>
250argv[1] = <var with spaces>
251argv[1] = <var with spacesab>
252argv[2] = <cd>
253argv[3] = <ef>
254argv[1] = <var with spacesab>
255argv[2] = <cd>
256argv[3] = <ef>
257argv[1] = <var with spacesab>
258argv[2] = <cd>
259argv[3] = <ef>
260argv[1] = <var with spacesab>
261argv[2] = <cd>
262argv[3] = <ef>
263argv[1] = <var with spacesab>
264argv[2] = <cd>
265argv[3] = <ef>
266argv[1] = <var with spacesab>
267argv[2] = <cd>
268argv[3] = <ef>
2692
270argv[1] = <element1 with spaces>
271argv[2] = <element2 with spaces>
272argv[1] = <element1 with spaces>
273argv[2] = <element2 with spaces>
274nord!olz
275
276rdholz
277
278rdholz
279rdho
280
281
282argv[1] = <fooq//barq/>
283argv[1] = <fooq>
284argv[2] = <>
285argv[3] = <barq>
286argv[4] = <>
287argv[1] = <foo!//bar!/>
288argv[1] = <foo!>
289argv[2] = <>
290argv[3] = <bar!>
291argv[4] = <>
292argv[1] = <ooq//arq/>
293argv[1] = <ooq>
294argv[2] = <>
295argv[3] = <arq>
296argv[4] = <>
297argv[1] = <Fooq//Barq/>
298argv[1] = <Fooq>
299argv[2] = <>
300argv[3] = <Barq>
301argv[4] = <>
302argv[1] = <FOOQ//BARQ/>
303argv[1] = <FOOQ>
304argv[2] = <>
305argv[3] = <BARQ>
306argv[4] = <>
307126
308127
309128
310argv[1] = <�>
311argv[1] = <~>
312argv[2] = <^?>
313argv[3] = <�>
314argv[1] = <~>
315argv[2] = <^?>
316argv[3] = <�>
317argv[1] = <~>
318argv[2] = <^?>
319argv[3] = <�>
320Monday Tuesday Wednesday Thursday Friday Saturday Sunday
321Monday
322Monday
323Tuesday
324Monday
325Monday
326Tuesday
327Monday
328Tuesday
329Wednesday
330Monday
331Tuesday
332Wednesday
333monday, monday, tuesday
334wednesday, wednesday, thursday
335monday, monday, tuesday
336Wednesday, Wednesday, Thursday
337nday
338esday
339dnesday
340nday
341esday
342dnesday
343onday
344uesday
345ednesday
346onday
347uesday
348ednesday
349version[agent]
350version.agent
351version[agent]
352version.agent
353foo[bar] version[agent]
354bowl version.agent
355foobar] foo foo[bar]
356bleh bbb bleh
357ab]
358bar
3591
3601
3611
3621
3631
3641
365main main
366function function
367function function
368declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5")
369declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4")
370declare -a x=([0]="0" [1]="1" [2]="2" [4]="4")
371./array14.sub: line 24: unset: [-10]: bad array subscript
372declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4")
373declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="five")
374declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5")
375declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="foo")
376declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5")
377declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4four" [5]="5")
378strlen(4four) = 5
3791 2 0 3
3801 2 0 3
3811 2 0 3
3821 2 0 3
3831 2 0 3
384foo index 1: ok
385foo index 2: ok
386foo: implicit reference to element 0: ok
387foo: arithmetic evaluation: ok
388bar: array with element zero unset: ok
389bar: element zero: ok
390qux: unset array: ok
391qux: unset array element 0: ok
3922
3932
3942
3952
3960
3970
3981
399./array17.sub: line 43: ~: syntax error: operand expected (error token is "~")
4000
4010
4023
4033
4040
4050
406zero
407zero
408one
409one
410one
411one
412two
413two
414./array17.sub: line 89: ~ : syntax error: operand expected (error token is "~ ")
4151
416argv[1] = <>
417argv[2] = <>
418argv[3] = <>
419argv[1] = <bar>
420argv[1] = <->
421argv[2] = <->
422argv[1] = <  >
423argv[1] = <qux>
424argv[1] = <->
425argv[2] = <->
426argv[1] = <  >
427argv[1] = <>
428argv[2] = <>
429argv[3] = <>
430argv[1] = <bar>
431argv[1] = <->
432argv[2] = <->
433argv[1] = <  >
434argv[1] = <qux>
435argv[1] = <->
436argv[2] = <->
437argv[1] = <  >
438declare -a foo=([0]="( zeroind )")
439declare -a foo=([0]="zeroind")
440declare -a foo=([0]="zeroind")
441declare -a foo=([0]="[0]=bar")
442declare -a foo=([0]="[0]=bar")
443declare -a foo=([0]="[0]=bar")
444declare -- a="(1 2 3)"
445declare -a a=([0]="1" [1]="2" [2]="3")
446declare -- a="([0]=a [1]=b)"
447declare -a a=([0]="a" [1]="b")
448declare -A a=([1]="b" [0]="a" )
449declare -a var=([0]="[\$(echo" [1]="total" [2]="0)]=1" [3]="[2]=2]")
450declare -a var=([0]="[\$(echo total 0)]=1 [2]=2]")
451declare -a var=([0]="[\$(echo" [1]="total" [2]="0)]=1" [3]="[2]=2]")
452./array19.sub: line 89: total 0: syntax error in expression (error token is "0")
453declare -a var=()
454declare -al foo=([0]="abcde" [1]="two" [2]="three")
455declare -al foo=([0]="abcde")
456declare -al ar=([0]="one" [1]="two" [2]="three")
457declare -a a=([2]="foo")
458declare -a a=([2]="foo")
459declare -a a=([1]="(var)" [2]="foo")
460./array19.sub: line 128: warning: a[1]=(var): quoted compound array assignment deprecated
461declare -a a=([1]="(var)")
462declare -a a=([0]="1" [1]="2" [2]="(1 2 3)")
463declare -a a=([0]="1" [1]="2" [2]="(1 2 3)")
464declare -a a=([0]="1" [1]="2" [2]="3")
465declare -a a=([0]="1" [1]="2" [2]="3")
466declare -a a=([0]="1" [1]="2" [2]="3")
467declare -- a="a b"
468declare -- b="/scratch/bash"
469declare -- c="(1 2)"
470declare -- d="(\$a)"
471declare -- e="(\$(echo Darwin))"
472declare -a a=([0]="a b")
473declare -a b=([0]="/scratch/bash")
474declare -a c=([0]="1" [1]="2")
475declare -a d=([0]="a" [1]="b")
476declare -a e=([0]="Darwin")
477declare -A a=([0]="a b" )
478declare -A b=([0]="/scratch/bash" )
479declare -A c=([1]="2" )
480declare -A d=(["a b"]="" )
481declare -A e=([Darwin]="" )
482a+b+c
483x+b+c
484a+b+c
485x+b+c
486argv[1] = <a+b+c+d+e+f>
487argv[1] = <x+b+c+d+e+f>
488a b c
489x b c
490a b c
491x b c
492declare -a a=([1]="2" [2]="3" [3]="4")
493abcd
494unset
495./array21.sub: line 30: typeset: a: not found
496./array21.sub: line 33: typeset: A: not found
497declare -a a=()
498declare -A A=()
499declare -a foo=([0]="1" [1]="(4 5 6)" [2]="3")
500a1
501argv[1] = <>
502argv[2] = <>
503a2
504argv[1] = <y>
505argv[1] = <z>
506a3
507argv[1] = <>
508argv[2] = <x>
509a4
510argv[1] = <y>
511p1
512argv[1] = <>
513argv[2] = <>
514p2
515argv[1] = <>
516argv[2] = <x>
517p3
518argv[1] = <y>
519<X> <X> <X> <X>
520<X> <X> <X> <X>
521./array23.sub: line 22: $( echo >&2 foo ) : syntax error: operand expected (error token is "$( echo >&2 foo ) ")
522./array23.sub: line 23: $( echo >&2 foo ) : syntax error: operand expected (error token is "$( echo >&2 foo ) ")
523foo
5240
525foo
526foo
527foo
5286
529./array23.sub: line 34: $( echo >&2 foo ): syntax error: operand expected (error token is "$( echo >&2 foo )")
530./array23.sub: line 35: $( echo >&2 foo ): syntax error: operand expected (error token is "$( echo >&2 foo )")
5310
5320
5330
534IFS=: ${var-$*}
535abc
536def ghi
537jkl
538abc
539def ghi
540jkl
541----
542IFS=: ${var=$*}
543abc
544def ghi
545jkl
546var=abc:def ghi:jkl
547abc
548def ghi
549jkl
550var=abc:def ghi:jkl
551----
552IFS=: ${var+$*}
553abc
554def ghi
555jkl
556abc
557def ghi
558jkl
559----
560IFS= ${var-$*}
561abc
562def ghi
563jkl
564abc
565def ghi
566jkl
567----
568IFS= ${var=$*}
569abcdef ghijkl
570var=abcdef ghijkl
571abcdef ghijkl
572var=abcdef ghijkl
573----
574IFS= ${var+$*}
575abc
576def ghi
577jkl
578abc
579def ghi
580jkl
5811. indexed:
582reference:
5831. 0
584./array25.sub: line 24: ' ': syntax error: operand expected (error token is "' '")
5853. 0
5864. 0
5875. 0
5886. 0
589assignment:
5901.declare -a a=([0]="10" [1]="1")
5912.declare -a a=([0]="11" [1]="1")
5923.declare -a a=([0]="12" [1]="1")
5934.declare -a a=([0]="13" [1]="1")
594arithmetic:
5951.declare -a a=([0]="10" [1]="1")
5962.declare -a a=([0]="11" [1]="1")
5973.declare -a a=([0]="12" [1]="1")
5984.declare -a a=([0]="13" [1]="1")
5995.declare -a a=([0]="10" [1]="1")
6006.declare -a a=([0]="11" [1]="1")
6017.declare -a a=([0]="12" [1]="1")
6028.declare -a a=([0]="13" [1]="1")
6032. associative:
604reference:
6051.
6062.
6073.
6084.
6095.
6106.
611assignment:
6121.declare -A a=([1]="1" [0]="0" [" "]="10" )
6132.declare -A a=([1]="1" [0]="0" [" "]="11" )
6143.declare -A a=([1]="1" [0]="0" [" "]="12" )
6154.declare -A a=([1]="1" [0]="0" [" "]="13" )
616arithmetic:
6171.declare -A a=([1]="1" [0]="0" [" "]="10" )
6182.declare -A a=([1]="1" [0]="0" [" "]="11" )
6193.declare -A a=([1]="1" [0]="0" [" "]="12" )
6204.declare -A a=([1]="1" [0]="0" [" "]="13" )
6215.declare -A a=([1]="1" [0]="0" [" "]="10" )
6226.declare -A a=([1]="1" [0]="0" [" "]="10" ["\" \""]="11" )
6237.declare -A a=([1]="1" [0]="0" [" "]="12" ["\" \""]="11" )
6248.declare -A a=([1]="1" [0]="0" [" "]="12" ["\" \""]="13" )
625argv[1] = <aa>
626argv[2] = <bb>
627argv[1] = <aa>
628argv[2] = <bb>
629argv[1] = <aa>
630argv[2] = <bb>
631argv[1] = <aa>
632argv[2] = <bb>
633argv[1] = <aa>
634argv[2] = <bb>
635argv[3] = <aa>
636argv[4] = <bb>
637argv[1] = <aa>
638argv[2] = <bb>
639argv[3] = <aa>
640argv[4] = <bb>
641argv[1] = <aa+bb>
642argv[2] = <aa+bb>
643argv[1] = <aa>
644argv[2] = <bb>
645argv[3] = <aa>
646argv[4] = <bb>
647argv[1] = <xa>
648argv[2] = <bb>
649argv[1] = <xa>
650argv[2] = <bb>
651argv[1] = <xa>
652argv[2] = <bb>
653argv[1] = <xa>
654argv[2] = <bb>
655argv[1] = <xa>
656argv[2] = <bb>
657argv[1] = <xa>
658argv[2] = <bb>
659argv[1] = <xa+bb>
660argv[1] = <xa+bb>
661argv[1] = <xa+bb>
662argv[2] = <xa+bb>
663argv[1] = <bb>
664argv[2] = <xa>
665argv[1] = <bb>
666argv[2] = <xa>
667argv[1] = <bb>
668argv[2] = <xa>
669argv[1] = <bb+xa>
670argv[1] = <xa>
671argv[2] = <bb>
672argv[1] = <xa>
673argv[2] = <bb>
674argv[1] = <xa>
675argv[2] = <bb>
676argv[1] = <xa>
677argv[2] = <bb>
678argv[1] = <xa>
679argv[2] = <bb>
680argv[1] = <xa>
681argv[2] = <bb>
682argv[1] = <xabb>
683argv[1] = <xabb>
684argv[1] = <xabb>
685argv[2] = <xabb>
686argv[1] = <bb>
687argv[2] = <xa>
688argv[1] = <bb>
689argv[2] = <xa>
690argv[1] = <bb>
691argv[2] = <xa>
692argv[1] = <bbxa>
693argv[1] = <aa>
694argv[2] = <bb>
695argv[1] = <aa>
696argv[2] = <bb>
697argv[1] = <aa>
698argv[2] = <bb>
699argv[1] = <aa>
700argv[2] = <bb>
701argv[1] = <aa>
702argv[2] = <bb>
703argv[3] = <aa>
704argv[4] = <bb>
705argv[1] = <aa>
706argv[2] = <bb>
707argv[3] = <aa>
708argv[4] = <bb>
709argv[1] = <aa+bb>
710argv[2] = <aa+bb>
711argv[1] = <aa+bb>
712argv[2] = <aa+bb>
713argv[1] = <aa>
714argv[2] = <bb>
715argv[3] = <aa>
716argv[4] = <bb>
717argv[1] = <bb>
718argv[2] = <aa>
719argv[1] = <bb>
720argv[2] = <aa>
721argv[1] = <bb>
722argv[2] = <aa>
723argv[1] = <bb+aa>
724argv[1] = <a>
725argv[2] = <b>
726argv[1] = <a>
727argv[2] = <b>
728argv[1] = <a>
729argv[2] = <b>
730argv[3] = <a>
731argv[4] = <b>
732argv[1] = <a+b>
733argv[2] = <a+b>
734argv[1] = <a>
735argv[2] = <b>
736argv[3] = <a>
737argv[4] = <b>
738argv[1] = <b>
739argv[2] = <a>
740argv[1] = <b>
741argv[2] = <a>
742argv[1] = <b>
743argv[2] = <a>
744argv[1] = <b+a>
7457
746./array27.sub: line 24: a[]]=7 : syntax error: invalid arithmetic operator (error token is "]=7 ")
747declare -A A=([$'\t']="2" [" "]="2" )
748./array27.sub: line 36: ((: A[]]=2 : syntax error: invalid arithmetic operator (error token is "]=2 ")
749declare -A A=([$'\t']="2" ["*"]="2" [" "]="2" ["@"]="2" )
750./array27.sub: line 45: A[]]: bad array subscript
751declare -A A=([$'\t']="X" ["*"]="X" [" "]="X" ["@"]="X" )
752./array27.sub: line 53: A[]]: bad array subscript
753declare -A A=([$'\t']="X" ["*"]="X" [" "]="X" ["@"]="X" )
754./array27.sub: line 61: declare: `A[]]=X': not a valid identifier
755declare -A A=(["*"]="X" ["@"]="X" )
756./array27.sub: line 69: declare: `A[]]=X': not a valid identifier
757./array27.sub: line 69: A[*]: bad array subscript
758./array27.sub: line 69: A[@]: bad array subscript
759declare -A A
760declare -a bug4=([0]="" [1]="5" [2]="" [3]="1" [4]="")
761declare -a bug=([0]="" [1]="5" [2]="" [3]="1" [4]="")
762declare -a bug2=([0]="")
763declare -a bug3=([0]="" [1]="5" [2]="" [3]="1" [4]="")
764declare -a not_bug=([0]="no" [1]="nulls")
765declare -a workaround=([0]="")
766