2001-04-02 14:34:23 +02:00
|
|
|
# Tests for array indexing
|
|
|
|
|
|
|
|
%prep
|
|
|
|
|
|
|
|
foo=(a b c d e f g)
|
2004-03-30 18:35:30 +02:00
|
|
|
arr=(foo bar baz)
|
2001-04-02 14:34:23 +02:00
|
|
|
mkdir array.tmp
|
|
|
|
touch array.tmp/{1..9}
|
|
|
|
|
|
|
|
%test
|
|
|
|
|
|
|
|
echo .$foo[1].
|
|
|
|
0:The first element
|
|
|
|
>.a.
|
|
|
|
|
|
|
|
echo .$foo[1,4].
|
|
|
|
0:Normal multi-item indexing
|
|
|
|
>.a b c d.
|
|
|
|
|
|
|
|
echo .$foo[1,0].
|
|
|
|
0:This should be empty
|
|
|
|
>..
|
|
|
|
|
|
|
|
echo .$foo[4,1].
|
|
|
|
0:Another empty slice
|
|
|
|
>..
|
|
|
|
|
|
|
|
echo .$foo[1,-8].
|
|
|
|
0:An empty slice with a negative end
|
|
|
|
>..
|
|
|
|
|
|
|
|
echo .$foo[0].
|
|
|
|
0:Treat 0 like 1
|
|
|
|
>.a.
|
|
|
|
|
|
|
|
echo .$foo[0,0].
|
|
|
|
0:Treat 0,0 like 1,1.
|
|
|
|
>.a.
|
|
|
|
|
|
|
|
echo .$foo[0,1].
|
|
|
|
0:Another weird way to access the first element
|
|
|
|
>.a.
|
|
|
|
|
|
|
|
echo .$foo[3].
|
|
|
|
0:An inner element
|
|
|
|
>.c.
|
|
|
|
|
|
|
|
echo .$foo[2,2].
|
|
|
|
0:Another inner element
|
|
|
|
>.b.
|
|
|
|
|
|
|
|
echo .$foo[2,-4].
|
|
|
|
0:A slice with a negative end
|
|
|
|
>.b c d.
|
|
|
|
|
|
|
|
echo .$foo[-4,5].
|
|
|
|
0:A slice with a negative start
|
|
|
|
>.d e.
|
|
|
|
|
|
|
|
echo .$foo[-6,-2].
|
|
|
|
0:A slice with a negative start and end
|
|
|
|
>.b c d e f.
|
|
|
|
|
2004-03-30 18:35:30 +02:00
|
|
|
echo .${${arr[2]}[1]}.
|
|
|
|
echo .${${arr[-2]}[1]}.
|
|
|
|
echo .${${arr[2,2]}[1]}.
|
|
|
|
echo .${${arr[-2,-2]}[1]}.
|
|
|
|
echo .${${arr[2,-2]}[1]}.
|
|
|
|
echo .${${arr[-2,2]}[1]}.
|
|
|
|
0:Slices should return an array, elements a scalar
|
|
|
|
>.b.
|
|
|
|
>.b.
|
|
|
|
>.bar.
|
|
|
|
>.bar.
|
|
|
|
>.bar.
|
|
|
|
>.bar.
|
|
|
|
|
2001-04-02 14:34:23 +02:00
|
|
|
setopt ksh_arrays
|
|
|
|
echo .${foo[1,2]}.
|
|
|
|
unsetopt ksh_arrays
|
|
|
|
0:Ksh array indexing
|
|
|
|
>.b c.
|
|
|
|
|
|
|
|
setopt ksh_arrays
|
|
|
|
echo .${foo[0,1]}.
|
|
|
|
unsetopt ksh_arrays
|
|
|
|
0:Ksh array indexing (ii)
|
|
|
|
>.a b.
|
|
|
|
|
|
|
|
setopt ksh_arrays
|
|
|
|
echo .${foo[1,-1]}.
|
|
|
|
unsetopt ksh_arrays
|
|
|
|
0:Ksh array indexing (iii)
|
|
|
|
>.b c d e f g.
|
|
|
|
|
|
|
|
cd array.tmp
|
|
|
|
echo . ?([3,5]) .
|
|
|
|
cd ..
|
|
|
|
0:Glob array indexing
|
|
|
|
>. 3 4 5 .
|
|
|
|
|
|
|
|
cd array.tmp
|
|
|
|
echo . ?([2,-2]) .
|
|
|
|
cd ..
|
|
|
|
0:Glob array indexing (ii)
|
|
|
|
>. 2 3 4 5 6 7 8 .
|
|
|
|
|
|
|
|
cd array.tmp
|
|
|
|
echo . ?([-6,-4]) .
|
|
|
|
cd ..
|
|
|
|
0:Glob array indexing (iii)
|
|
|
|
>. 4 5 6 .
|