-./array.tests: array assign: line 10: syntax error near unexpected token `&'
-./array.tests: array assign: line 10: `first & second'
+
+./array.tests: line 15: syntax error near unexpected token `&'
+./array.tests: line 15: `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='([0]="main")'
declare -a a='([0]="abcde" [1]="" [2]="bdef")'
declare -a b='()'
declare -ar c='()'
11
3
bdef hello world test expression
-./array.tests: readonly: `a[5]': not a valid identifier
+./array.tests: line 74: readonly: `a[5]': not a valid identifier
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")'
declare -ar c='()'
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")'
declare -ar c='()'
readonly -a a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")'
readonly -a c='()'
-./array.tests: declare: e: cannot assign to array variables in this way
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='([0]="main")'
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")'
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: a: readonly variable
-./array.tests: b[]: bad array subscript
-./array.tests: b[*]: bad array subscript
-./array.tests: ${b[ ]}: bad substitution
-./array.tests: c[-2]: bad array subscript
-./array.tests: c: bad array subscript
+./array.tests: line 98: a: readonly variable
+./array.tests: line 100: b[]: bad array subscript
+./array.tests: line 101: b[*]: bad array subscript
+./array.tests: line 102: ${b[ ]}: bad substitution
+./array.tests: line 104: c[-2]: bad array subscript
+./array.tests: line 105: c: bad array subscript
-./array.tests: d[7]: cannot assign list to array member
-./array.tests: []=abcde: bad array subscript
-./array.tests: [*]=last: cannot assign to non-numeric index
-./array.tests: [-65]=negative: bad array subscript
+./array.tests: line 107: d[7]: cannot assign list to array member
+./array.tests: line 109: []=abcde: bad array subscript
+./array.tests: line 109: [*]=last: cannot assign to non-numeric index
+./array.tests: line 109: [-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='([0]="main")'
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")'
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 f='([0]="" [1]="bdef" [2]="hello world" [3]="test" [4]="ninth element")'
-./array.tests: unset: ps1: not an array variable
-./array.tests: declare: c: cannot destroy array variables in this way
+./array.tests: line 117: unset: ps1: not an array variable
+./array.tests: line 121: 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='([0]="main")'
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")'
declare -a b='([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd")'
declare -ar c='()'
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
6 7 9 5
length = 3
value = new1 new2 new3
-./array.tests: narray: unbound variable
+./array.tests: line 237: narray: unbound variable
a b c d e f g
for case if then else
12 14 16 18 20
4414758999202
aaa bbb
-./array.tests: array assign: line 262: syntax error near unexpected token `for'
-./array.tests: array assign: line 262: `a b c for case if then else'
-./array.tests: array assign: line 264: syntax error near unexpected token `for'
-./array.tests: array assign: line 264: `for case if then else'
-./array.tests: array assign: line 266: syntax error near unexpected token `<>'
-./array.tests: array assign: line 266: ` <> < > ! '
-./array.tests: array assign: line 267: syntax error near unexpected token `[1]=<>'
-./array.tests: array assign: line 267: ` [1]=<> [2]=< [3]=> [4]=! '
+./array.tests: line 277: syntax error near unexpected token `<>'
+./array.tests: line 277: `metas=( <> < > ! )'
+./array.tests: line 278: syntax error near unexpected token `<>'
+./array.tests: line 278: `metas=( [1]=<> [2]=< [3]=> [4]=! )'
abc 3
+case 4
+abc case if then else 5
+abc case if then else 5
0
-abc 1
-abc 1
-0
-0
-1
-1
+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
+