diff options
Diffstat (limited to 'tests/array.right')
-rw-r--r-- | tests/array.right | 787 |
1 files changed, 787 insertions, 0 deletions
diff --git a/tests/array.right b/tests/array.right new file mode 100644 index 0000000..6227885 --- /dev/null +++ b/tests/array.right @@ -0,0 +1,787 @@ + +./array.tests: line 28: syntax error near unexpected token `&' +./array.tests: line 28: `test=(first & second)' +1 +abcde +abcde +abcde bdef +abcde bdef +declare -a BASH_ARGC=() +declare -a BASH_ARGV=() +declare -a BASH_LINENO=([0]="0") +declare -a BASH_SOURCE=([0]="./array.tests") +declare -a DIRSTACK=() +declare -a FUNCNAME +declare -a a=([0]="abcde" [1]="" [2]="bdef") +declare -a b +declare -ar c +abcde bdef +abcde bdef +abcde +abcde +abcde + +bdef +hello world +11 +3 +bdef hello world test expression test 2 +./array.tests: line 92: readonly: `a[5]': not a valid identifier +declare -ar a=([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2") +declare -ar c +declare -ar a=([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2") +declare -ar c +readonly -a a=([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2") +readonly -a c +a test +declare -a BASH_ARGC=() +declare -a BASH_ARGV=() +declare -a BASH_LINENO=([0]="0") +declare -a BASH_SOURCE=([0]="./array.tests") +declare -a DIRSTACK=() +declare -a FUNCNAME +declare -ar a=([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2") +declare -a b=([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd") +declare -ar c +declare -a d=([1]="" [2]="bdef" [5]="hello world" [6]="test" [9]="ninth element") +declare -a e=([0]="test") +declare -a f=([0]="" [1]="bdef" [2]="hello world" [3]="test" [4]="ninth element") +./array.tests: line 116: a: readonly variable +./array.tests: line 118: b[]: bad array subscript +./array.tests: line 119: b[*]: bad array subscript +this +./array.tests: line 122: c[-2]: bad array subscript +./array.tests: line 123: c: bad array subscript + +./array.tests: line 125: d[7]: cannot assign list to array member +./array.tests: line 127: []=abcde: bad array subscript +./array.tests: line 127: [*]=last: cannot assign to non-numeric index +./array.tests: line 127: [-65]=negative: bad array subscript +declare -a BASH_ARGC=() +declare -a BASH_ARGV=() +declare -a BASH_LINENO=([0]="0") +declare -a BASH_SOURCE=([0]="./array.tests") +declare -a DIRSTACK=() +declare -a FUNCNAME +declare -ar a=([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2") +declare -a b=([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd") +declare -ar c +declare -a d=([1]="test test") +declare -a e=() +declare -a f=([0]="" [1]="bdef" [2]="hello world" [3]="test" [4]="ninth element") +./array.tests: line 135: unset: ps1: not an array variable +./array.tests: line 139: declare: c: cannot destroy array variables in this way +this of +this is a test of read using arrays +this test +this is a test of arrays +declare -a BASH_ARGC=() +declare -a BASH_ARGV=() +declare -a BASH_LINENO=([0]="0") +declare -a BASH_SOURCE=([0]="./array.tests") +declare -a DIRSTACK=() +declare -a FUNCNAME +declare -ar a=([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2") +declare -a b=([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd") +declare -ar c +declare -a d=([1]="test test") +declare -a e=() +declare -a f=([0]="" [1]="bdef" [2]="hello world" [3]="test" [4]="ninth element") +declare -a rv=([0]="this" [1]="is" [2]="a" [3]="test" [4]="of" [5]="read" [6]="using" [7]="arrays") +abde +abde +bbb +efgh +wxyz +wxyz +./array.tests +a +b c +d +e f g +h +./array.tests +a +b c +d +e f g +h +/bin /usr/bin /usr/ucb /usr/local/bin . /sbin /usr/sbin +bin bin ucb bin . sbin sbin +bin +/ / / / / / +/ +argv[1] = <bin> +argv[1] = </> +argv[1] = <sbin> +argv[1] = </> +\bin \usr/bin \usr/ucb \usr/local/bin . \sbin \usr/sbin +\bin \usr\bin \usr\ucb \usr\local\bin . \sbin \usr\sbin +\bin \usr\bin \usr\ucb \usr\local\bin . \sbin \usr\sbin +4 -- 4 +7 -- 7 +55 +49 +6 -- 6 +42 14 44 +grep [ 123 ] * +6 7 9 +6 7 9 5 +length = 3 +value = new1 new2 new3 +./array.tests: line 255: narray: unbound variable +./array1.sub: line 1: syntax error near unexpected token `(' +./array1.sub: line 1: `printf "%s\n" -a a=(a 'b c')' +./array2.sub: line 1: declare: `[]=asdf': not a valid identifier +./array2.sub: line 2: a[]: bad array subscript +./array2.sub: line 4: syntax error near unexpected token `(' +./array2.sub: line 4: `declare -a ''=(a 'b c')' +9 +9 + + +7 8 9 +8 11 +8 11 +6 +6 +nordholz +8 +8 +8 + +a b c d e f g +for case if then else +<> < > ! +12 14 16 18 20 +4414758999202 +aaa bbb +./array.tests: line 305: syntax error near unexpected token `<>' +./array.tests: line 305: `metas=( <> < > ! )' +./array.tests: line 306: syntax error near unexpected token `<>' +./array.tests: line 306: `metas=( [1]=<> [2]=< [3]=> [4]=! )' +abc 3 +case 4 +abc case if then else 5 +abc case if then else 5 +0 +case 4 +case if then else 5 +case if then else 5 +argv[1] = <0> +argv[2] = <1> +argv[3] = <4> +argv[4] = <10> +argv[1] = <0> +argv[2] = <1> +argv[3] = <4> +argv[4] = <10> +argv[1] = <0> +argv[2] = <1> +argv[3] = <4> +argv[4] = <10> +argv[1] = <0 1 4 10> +include null element -- expect one +one +include unset element -- expect three five +three five +start at unset element -- expect five seven +five seven +too many elements -- expect three five seven +three five seven +positive offset - expect five seven +five seven +negative offset to unset element - expect seven +seven +positive offset 2 - expect seven +seven +negative offset 2 - expect seven +seven +out-of-range offset + +e +4 +1 4 7 10 +'b +b c +$0 +declare -a A=([0]="X=a" [1]="b") +t +[3]=abcde r s t u v +e +9 +2 +a b c +argv[1] = <-iname 'a> +argv[2] = <-iname 'b> +argv[3] = <-iname 'c> +'hey' +hey +''hey +'hey' +argv[1] = <c> +argv[2] = <d> +argv[3] = <e> +argv[4] = <f> +argv[1] = <c d> +argv[2] = <e f> +argv[1] = <c d> +argv[2] = <e f> +argv[1] = <c d> +argv[2] = <e f> +argv[1] = <-iname 'abc> +argv[2] = <-iname 'def> +argv[1] = <-iname 'abc> +argv[2] = <-iname 'def> +argv[1] = <-iname> +argv[2] = <abc -iname def> +argv[1] = <-iname 'abc> +argv[2] = <-iname 'def> +argv[1] = <-iname> +argv[2] = <abc -iname def> +argv[1] = <-iname 'abc> +argv[2] = <-iname 'def> +argv[1] = <-iname 'abc> +argv[2] = <-iname 'def> +argv[1] = <-iname> +argv[2] = <abc -iname def> +*.* OK +1 +a1 2 3c +argv[1] = <var with spaces> +argv[1] = <var with spaces> +argv[1] = <var with spacesab> +argv[2] = <cd> +argv[3] = <ef> +argv[1] = <var with spacesab> +argv[2] = <cd> +argv[3] = <ef> +argv[1] = <var with spacesab> +argv[2] = <cd> +argv[3] = <ef> +argv[1] = <var with spacesab> +argv[2] = <cd> +argv[3] = <ef> +argv[1] = <var with spacesab> +argv[2] = <cd> +argv[3] = <ef> +argv[1] = <var with spacesab> +argv[2] = <cd> +argv[3] = <ef> +2 +argv[1] = <element1 with spaces> +argv[2] = <element2 with spaces> +argv[1] = <element1 with spaces> +argv[2] = <element2 with spaces> +nord!olz + +rdholz + +rdholz +rdho + + +argv[1] = <fooq//barq/> +argv[1] = <fooq> +argv[2] = <> +argv[3] = <barq> +argv[4] = <> +argv[1] = <foo!//bar!/> +argv[1] = <foo!> +argv[2] = <> +argv[3] = <bar!> +argv[4] = <> +argv[1] = <ooq//arq/> +argv[1] = <ooq> +argv[2] = <> +argv[3] = <arq> +argv[4] = <> +argv[1] = <Fooq//Barq/> +argv[1] = <Fooq> +argv[2] = <> +argv[3] = <Barq> +argv[4] = <> +argv[1] = <FOOQ//BARQ/> +argv[1] = <FOOQ> +argv[2] = <> +argv[3] = <BARQ> +argv[4] = <> +126 +127 +128 +argv[1] = <€> +argv[1] = <~> +argv[2] = <^?> +argv[3] = <€> +argv[1] = <~> +argv[2] = <^?> +argv[3] = <€> +argv[1] = <~> +argv[2] = <^?> +argv[3] = <€> +Monday Tuesday Wednesday Thursday Friday Saturday Sunday +Monday +Monday +Tuesday +Monday +Monday +Tuesday +Monday +Tuesday +Wednesday +Monday +Tuesday +Wednesday +monday, monday, tuesday +wednesday, wednesday, thursday +monday, monday, tuesday +Wednesday, Wednesday, Thursday +nday +esday +dnesday +nday +esday +dnesday +onday +uesday +ednesday +onday +uesday +ednesday +version[agent] +version.agent +version[agent] +version.agent +foo[bar] version[agent] +bowl version.agent +foobar] foo foo[bar] +bleh bbb bleh +ab] +bar +1 +1 +1 +1 +1 +1 +main main +function function +function function +declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5") +declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4") +declare -a x=([0]="0" [1]="1" [2]="2" [4]="4") +./array14.sub: line 24: unset: [-10]: bad array subscript +declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4") +declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="five") +declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5") +declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="foo") +declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5") +declare -a x=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4four" [5]="5") +strlen(4four) = 5 +1 2 0 3 +1 2 0 3 +1 2 0 3 +1 2 0 3 +1 2 0 3 +declare -ai arr=([0]="2" [1]="4" [2]="6") +declare -a arr=([0]="hello" [1]="world") +foo index 1: ok +foo index 2: ok +foo: implicit reference to element 0: ok +foo: arithmetic evaluation: ok +bar: array with element zero unset: ok +bar: element zero: ok +qux: unset array: ok +qux: unset array element 0: ok +2 +2 +2 +2 +0 +0 +1 +./array17.sub: line 43: ~: syntax error: operand expected (error token is "~") +0 +0 +3 +3 +0 +0 +zero +zero +one +one +one +one +two +two +./array17.sub: line 89: ~ : syntax error: operand expected (error token is "~ ") +1 +argv[1] = <> +argv[2] = <> +argv[3] = <> +argv[1] = <bar> +argv[1] = <-> +argv[2] = <-> +argv[1] = < > +argv[1] = <qux> +argv[1] = <-> +argv[2] = <-> +argv[1] = < > +argv[1] = <> +argv[2] = <> +argv[3] = <> +argv[1] = <bar> +argv[1] = <-> +argv[2] = <-> +argv[1] = < > +argv[1] = <qux> +argv[1] = <-> +argv[2] = <-> +argv[1] = < > +declare -a foo=([0]="( zeroind )") +declare -a foo=([0]="zeroind") +declare -a foo=([0]="zeroind") +declare -a foo=([0]="[0]=bar") +declare -a foo=([0]="[0]=bar") +declare -a foo=([0]="[0]=bar") +declare -- a="(1 2 3)" +declare -a a=([0]="1" [1]="2" [2]="3") +declare -- a="([0]=a [1]=b)" +declare -a a=([0]="a" [1]="b") +declare -A a=([1]="b" [0]="a" ) +declare -a var=([0]="[\$(echo" [1]="total" [2]="0)]=1" [3]="[2]=2]") +declare -a var=([0]="[\$(echo total 0)]=1 [2]=2]") +declare -a var=([0]="[\$(echo" [1]="total" [2]="0)]=1" [3]="[2]=2]") +./array19.sub: line 89: total 0: syntax error in expression (error token is "0") +declare -a var=() +declare -al foo=([0]="abcde" [1]="two" [2]="three") +declare -al foo=([0]="abcde") +declare -al ar=([0]="one" [1]="two" [2]="three") +declare -a a=([2]="foo") +declare -a a=([2]="foo") +declare -a a=([1]="(var)" [2]="foo") +./array19.sub: line 128: warning: a[1]=(var): quoted compound array assignment deprecated +declare -a a=([1]="(var)") +declare -a a=([0]="1" [1]="2" [2]="(1 2 3)") +declare -a a=([0]="1" [1]="2" [2]="(1 2 3)") +declare -a a=([0]="1" [1]="2" [2]="3") +declare -a a=([0]="1" [1]="2" [2]="3") +declare -a a=([0]="1" [1]="2" [2]="3") +declare -- a="a b" +declare -- b="/scratch/bash" +declare -- c="(1 2)" +declare -- d="(\$a)" +declare -- e="(\$(echo Darwin))" +declare -a a=([0]="a b") +declare -a b=([0]="/scratch/bash") +declare -a c=([0]="1" [1]="2") +declare -a d=([0]="a" [1]="b") +declare -a e=([0]="Darwin") +declare -A a=([0]="a b" ) +declare -A b=([0]="/scratch/bash" ) +declare -A c=([1]="2" ) +declare -A d=(["a b"]="" ) +declare -A e=([Darwin]="" ) +a+b+c +x+b+c +a+b+c +x+b+c +argv[1] = <a+b+c+d+e+f> +argv[1] = <x+b+c+d+e+f> +a b c +x b c +a b c +x b c +declare -a a=([1]="2" [2]="3" [3]="4") +abcd +unset +declare -a a=() +declare -A A=([four]="4" [two]="2" [three]="3" [one]="1" ) +declare -a a=() +declare -A A=() +declare -a foo=([0]="1" [1]="(4 5 6)" [2]="3") +a1 +argv[1] = <> +argv[2] = <> +a2 +argv[1] = <y> +argv[1] = <z> +a3 +argv[1] = <> +argv[2] = <x> +a4 +argv[1] = <y> +p1 +argv[1] = <> +argv[2] = <> +p2 +argv[1] = <> +argv[2] = <x> +p3 +argv[1] = <y> +<X> <X> <X> <X> +<X> <X> <X> <X> +./array23.sub: line 22: $( echo >&2 foo ) : syntax error: operand expected (error token is "$( echo >&2 foo ) ") +./array23.sub: line 23: $( echo >&2 foo ) : syntax error: operand expected (error token is "$( echo >&2 foo ) ") +./array23.sub: line 24: $( echo >&2 foo ) : syntax error: operand expected (error token is "$( echo >&2 foo ) ") +./array23.sub: line 26: $( echo >&2 foo ) : syntax error: operand expected (error token is "$( echo >&2 foo ) ") +./array23.sub: line 30: $( echo >&2 foo ): syntax error: operand expected (error token is "$( echo >&2 foo )") +./array23.sub: line 33: $( echo >&2 foo ): syntax error: operand expected (error token is "$( echo >&2 foo )") +./array23.sub: line 34: $index: syntax error: operand expected (error token is "$index") +./array23.sub: line 35: $( echo >&2 foo ): syntax error: operand expected (error token is "$( echo >&2 foo )") +0 +0 +0 +IFS=: ${var-$*} +abc +def ghi +jkl +abc +def ghi +jkl +---- +IFS=: ${var=$*} +abc +def ghi +jkl +var=abc:def ghi:jkl +abc +def ghi +jkl +var=abc:def ghi:jkl +---- +IFS=: ${var+$*} +abc +def ghi +jkl +abc +def ghi +jkl +---- +IFS= ${var-$*} +abc +def ghi +jkl +abc +def ghi +jkl +---- +IFS= ${var=$*} +abcdef ghijkl +var=abcdef ghijkl +abcdef ghijkl +var=abcdef ghijkl +---- +IFS= ${var+$*} +abc +def ghi +jkl +abc +def ghi +jkl +1. indexed: +reference: +1. 0 +./array25.sub: line 24: ' ': syntax error: operand expected (error token is "' '") +3. 0 +4. 0 +5. 0 +6. 0 +assignment: +1.declare -a a=([0]="10" [1]="1") +2.declare -a a=([0]="11" [1]="1") +3.declare -a a=([0]="12" [1]="1") +4.declare -a a=([0]="13" [1]="1") +arithmetic: +1.declare -a a=([0]="10" [1]="1") +2.declare -a a=([0]="11" [1]="1") +3.declare -a a=([0]="12" [1]="1") +4.declare -a a=([0]="13" [1]="1") +5.declare -a a=([0]="10" [1]="1") +6.declare -a a=([0]="11" [1]="1") +7.declare -a a=([0]="12" [1]="1") +8.declare -a a=([0]="13" [1]="1") +2. associative: +reference: +1. +2. +3. +4. +5. +6. +assignment: +1.declare -A a=([1]="1" [0]="0" [" "]="10" ) +2.declare -A a=([1]="1" [0]="0" [" "]="11" ) +3.declare -A a=([1]="1" [0]="0" [" "]="12" ) +4.declare -A a=([1]="1" [0]="0" [" "]="13" ) +arithmetic: +1.declare -A a=([1]="1" [0]="0" [" "]="10" ) +2.declare -A a=([1]="1" [0]="0" [" "]="11" ) +3.declare -A a=([1]="1" [0]="0" [" "]="12" ) +4.declare -A a=([1]="1" [0]="0" [" "]="13" ) +5.declare -A a=([1]="1" [0]="0" [" "]="10" ) +6.declare -A a=([1]="1" [0]="0" [" "]="10" ["\" \""]="11" ) +7.declare -A a=([1]="1" [0]="0" [" "]="12" ["\" \""]="11" ) +8.declare -A a=([1]="1" [0]="0" [" "]="12" ["\" \""]="13" ) +argv[1] = <aa> +argv[2] = <bb> +argv[1] = <aa> +argv[2] = <bb> +argv[1] = <aa> +argv[2] = <bb> +argv[1] = <aa> +argv[2] = <bb> +argv[1] = <aa> +argv[2] = <bb> +argv[3] = <aa> +argv[4] = <bb> +argv[1] = <aa> +argv[2] = <bb> +argv[3] = <aa> +argv[4] = <bb> +argv[1] = <aa+bb> +argv[2] = <aa+bb> +argv[1] = <aa> +argv[2] = <bb> +argv[3] = <aa> +argv[4] = <bb> +argv[1] = <xa> +argv[2] = <bb> +argv[1] = <xa> +argv[2] = <bb> +argv[1] = <xa> +argv[2] = <bb> +argv[1] = <xa> +argv[2] = <bb> +argv[1] = <xa> +argv[2] = <bb> +argv[1] = <xa> +argv[2] = <bb> +argv[1] = <xa+bb> +argv[1] = <xa+bb> +argv[1] = <xa+bb> +argv[2] = <xa+bb> +argv[1] = <bb> +argv[2] = <xa> +argv[1] = <bb> +argv[2] = <xa> +argv[1] = <bb> +argv[2] = <xa> +argv[1] = <bb+xa> +argv[1] = <xa> +argv[2] = <bb> +argv[1] = <xa> +argv[2] = <bb> +argv[1] = <xa> +argv[2] = <bb> +argv[1] = <xa> +argv[2] = <bb> +argv[1] = <xa> +argv[2] = <bb> +argv[1] = <xa> +argv[2] = <bb> +argv[1] = <xabb> +argv[1] = <xabb> +argv[1] = <xabb> +argv[2] = <xabb> +argv[1] = <bb> +argv[2] = <xa> +argv[1] = <bb> +argv[2] = <xa> +argv[1] = <bb> +argv[2] = <xa> +argv[1] = <bbxa> +argv[1] = <aa> +argv[2] = <bb> +argv[1] = <aa> +argv[2] = <bb> +argv[1] = <aa> +argv[2] = <bb> +argv[1] = <aa> +argv[2] = <bb> +argv[1] = <aa> +argv[2] = <bb> +argv[3] = <aa> +argv[4] = <bb> +argv[1] = <aa> +argv[2] = <bb> +argv[3] = <aa> +argv[4] = <bb> +argv[1] = <aa+bb> +argv[2] = <aa+bb> +argv[1] = <aa+bb> +argv[2] = <aa+bb> +argv[1] = <aa> +argv[2] = <bb> +argv[3] = <aa> +argv[4] = <bb> +argv[1] = <bb> +argv[2] = <aa> +argv[1] = <bb> +argv[2] = <aa> +argv[1] = <bb> +argv[2] = <aa> +argv[1] = <bb+aa> +argv[1] = <a> +argv[2] = <b> +argv[1] = <a> +argv[2] = <b> +argv[1] = <a> +argv[2] = <b> +argv[3] = <a> +argv[4] = <b> +argv[1] = <a+b> +argv[2] = <a+b> +argv[1] = <a> +argv[2] = <b> +argv[3] = <a> +argv[4] = <b> +argv[1] = <b> +argv[2] = <a> +argv[1] = <b> +argv[2] = <a> +argv[1] = <b> +argv[2] = <a> +argv[1] = <b+a> +7 +7 +declare -A A=([$'\t']="2" [" "]="2" ) +declare -A A=([$'\t']="2" ["*"]="2" [" "]="2" ["]"]="2" ["@"]="2" ) +declare -A A=([$'\t']="2" ["*"]="2" [" "]="2" ["]"]="2" ["@"]="2" ) +./array27.sub: line 52: read: `A[]]': not a valid identifier +declare -A A=([$'\t']="X" ["*"]="X" [" "]="X" ["@"]="X" ) +./array27.sub: line 60: printf: `A[]]': not a valid identifier +declare -A A=([$'\t']="X" ["*"]="X" [" "]="X" ["@"]="X" ) +./array27.sub: line 68: declare: `A[]]=X': not a valid identifier +declare -A A=(["*"]="X" ["@"]="X" ) +./array27.sub: line 76: declare: `A[]]=X': not a valid identifier +declare -A A=(["*"]="X" ["@"]="X" ) +declare -a bug4=([0]="" [1]="5" [2]="" [3]="1" [4]="") +declare -a bug=([0]="" [1]="5" [2]="" [3]="1" [4]="") +declare -a bug2=([0]="") +declare -a bug3=([0]="" [1]="5" [2]="" [3]="1" [4]="") +declare -a not_bug=([0]="no" [1]="nulls") +declare -a workaround=([0]="") +declare -a var=([0]=$'\001\001\001\001') +declare -A v2=([$'\001']=$'ab\001c' ) +declare -a foo=([0]=$'\001\001\001\001') +declare -A foo=([$'\001']=$'ab\001c' ) +declare -a foo=([0]=$'\001\001\001\001') +declare -a foo=([0]=$'\001\001\001\001') +declare -A foo=([v]=$'\001\001\001\001' ) +declare -A foo=([v]=$'\001\001\001\001' ) +declare -A foo=([$'\001']=$'ab\001c' ) +declare -A foo=([$'\001']=$'ab\001c' ) +foo +declare -a a=([42]="foo") +foo +declare -a a=([42]="foo") +7 +declare -ai a=([42]="7") +42 +declare -ai a=([42]="42") +FOO +declare -Au A=([Darwin]="FOO" ) +FOO +declare -Au A=(["@"]="FOO" ) |