]> git.ipfire.org Git - thirdparty/bash.git/blame - tests/array19.sub
bash-5.1 distribution sources and documentation
[thirdparty/bash.git] / tests / array19.sub
CommitLineData
8868edaf
CR
1# This program is free software: you can redistribute it and/or modify
2# it under the terms of the GNU General Public License as published by
3# the Free Software Foundation, either version 3 of the License, or
4# (at your option) any later version.
5#
6# This program is distributed in the hope that it will be useful,
7# but WITHOUT ANY WARRANTY; without even the implied warranty of
8# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9# GNU General Public License for more details.
10#
11# You should have received a copy of the GNU General Public License
12# along with this program. If not, see <http://www.gnu.org/licenses/>.
13#
a0c0a00f
CR
14# tests for changes to declare and assignment statement arguments post-bash-4.3
15
16unset foo l a b
17
18l="( zeroind )"
19
20unset foo
21declare -a foo
22foo="$l"
23declare -p foo
24
25unset foo
26declare -a foo="$l"
27declare -p foo
28
29unset foo
30declare -a foo=$l
31declare -p foo
32
33b='[0]=bar'
34
35unset foo
36declare -a foo="$b"
37declare -p foo
38
39unset foo
40declare -a foo=("$b")
41declare -p foo
42
43unset foo
44declare -a foo=($b)
45declare -p foo
46
47unset a
48
49declare a='(1 2 3)'
50declare -p a
51unset a
52
53declare -a a
54declare a='(1 2 3)'
55declare -p a
56unset a
57
a0c0a00f
CR
58declare a='([0]=a [1]=b)'
59declare -p a
60unset a
61
62declare -a a
63declare a='([0]=a [1]=b)'
64declare -p a
65unset a
66
67declare -A a
68declare a='([0]=a [1]=b)'
69declare -p a
70unset a
71unset var value
72
73value='[$(echo total 0)]=1 [2]=2]'
74
75unset var
76declare -a var
77var=($value)
78declare -p var
79
80unset var
81declare -a var=("$value")
82declare -p var
83
84unset var
85declare -a var=($value)
86declare -p var
87
88unset var
89declare -a var="($value)"
90declare -p var
91unset foo value
92
93value="AbCdE"
94
95declare -a foo
96foo=( one two three )
97
98declare -l foo="$value"
99declare -p foo
100
101unset foo
102value='(AbCdE)'
103
104declare -a foo
105foo=( one two three )
106
107declare -l foo="$value"
108declare -p foo
109unset ar
110declare -a ar=(ONE TWO THREE)
111declare -al ar=(${ar[@]})
112declare -p ar
113unset a
114
115declare -a a
116a[2]=foo
117declare -p a
118
119unset a
120declare -a a
121declare a[2]=foo
122declare -p a
123
124declare a[1]='(var)'
125declare -p a
126
127unset a
128declare a[1]='(var)'
129declare -p a
130unset a
131
132a=(1 2 3)
133a[2]='(1 2 3)'
134
135declare -p a
136
137unset a
138a=(1 2 3)
139declare a[2]='(1 2 3)'
140
141declare -p a
142
143unset a
144a=(1 2 3)
145declare a='(1 2 3)'
146
147declare -p a
148
149unset a
150a=(1 2 3)
151declare 'a=(1 2 3)'
152
153declare -p a
154
155unset a
156declare -a a='(1 2 3)'
157
158declare -p a
159unset a b c d e x y
160
161HOME=/scratch/bash
162x='a b'
163y='($(echo Darwin))'
164
165declare a=$x b=~ c='(1 2)' d='($a)' e=$y
166
167declare -p a b c d e
168
169unset a b c d e
170declare -a a=$x b=~ c='(1 2)' d='($a)' e=$y
171declare -p a b c d e
172
173unset a b c d e
174declare -A a=$x b=~ c='(1 2)' d='($a)' e=$y
175declare -p a b c d e