]> git.ipfire.org Git - thirdparty/bash.git/blob - tests/array19.sub
Bash-5.2-rc4 release
[thirdparty/bash.git] / tests / array19.sub
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 #
14 # tests for changes to declare and assignment statement arguments post-bash-4.3
15
16 unset foo l a b
17
18 l="( zeroind )"
19
20 unset foo
21 declare -a foo
22 foo="$l"
23 declare -p foo
24
25 unset foo
26 declare -a foo="$l"
27 declare -p foo
28
29 unset foo
30 declare -a foo=$l
31 declare -p foo
32
33 b='[0]=bar'
34
35 unset foo
36 declare -a foo="$b"
37 declare -p foo
38
39 unset foo
40 declare -a foo=("$b")
41 declare -p foo
42
43 unset foo
44 declare -a foo=($b)
45 declare -p foo
46
47 unset a
48
49 declare a='(1 2 3)'
50 declare -p a
51 unset a
52
53 declare -a a
54 declare a='(1 2 3)'
55 declare -p a
56 unset a
57
58 declare a='([0]=a [1]=b)'
59 declare -p a
60 unset a
61
62 declare -a a
63 declare a='([0]=a [1]=b)'
64 declare -p a
65 unset a
66
67 declare -A a
68 declare a='([0]=a [1]=b)'
69 declare -p a
70 unset a
71 unset var value
72
73 value='[$(echo total 0)]=1 [2]=2]'
74
75 unset var
76 declare -a var
77 var=($value)
78 declare -p var
79
80 unset var
81 declare -a var=("$value")
82 declare -p var
83
84 unset var
85 declare -a var=($value)
86 declare -p var
87
88 unset var
89 declare -a var="($value)"
90 declare -p var
91 unset foo value
92
93 value="AbCdE"
94
95 declare -a foo
96 foo=( one two three )
97
98 declare -l foo="$value"
99 declare -p foo
100
101 unset foo
102 value='(AbCdE)'
103
104 declare -a foo
105 foo=( one two three )
106
107 declare -l foo="$value"
108 declare -p foo
109 unset ar
110 declare -a ar=(ONE TWO THREE)
111 declare -al ar=(${ar[@]})
112 declare -p ar
113 unset a
114
115 declare -a a
116 a[2]=foo
117 declare -p a
118
119 unset a
120 declare -a a
121 declare a[2]=foo
122 declare -p a
123
124 declare a[1]='(var)'
125 declare -p a
126
127 unset a
128 declare a[1]='(var)'
129 declare -p a
130 unset a
131
132 a=(1 2 3)
133 a[2]='(1 2 3)'
134
135 declare -p a
136
137 unset a
138 a=(1 2 3)
139 declare a[2]='(1 2 3)'
140
141 declare -p a
142
143 unset a
144 a=(1 2 3)
145 declare a='(1 2 3)'
146
147 declare -p a
148
149 unset a
150 a=(1 2 3)
151 declare 'a=(1 2 3)'
152
153 declare -p a
154
155 unset a
156 declare -a a='(1 2 3)'
157
158 declare -p a
159 unset a b c d e x y
160
161 HOME=/scratch/bash
162 x='a b'
163 y='($(echo Darwin))'
164
165 declare a=$x b=~ c='(1 2)' d='($a)' e=$y
166
167 declare -p a b c d e
168
169 unset a b c d e
170 declare -a a=$x b=~ c='(1 2)' d='($a)' e=$y
171 declare -p a b c d e
172
173 unset a b c d e
174 declare -A a=$x b=~ c='(1 2)' d='($a)' e=$y
175 declare -p a b c d e