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.
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.
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/>.
15 # make sure indirect expansion for arrays uses the closest-scope instance
16 # of the resulting variable name
19 array_2=("1 foo" "2 foo")
23 local array_1=('HELLO')
24 local a=("${!1}") b=("${!2}")
25 printf '%s;' "${a[@]}" "${b[@]}"
31 local a=("${!1}") b=("${!2}")
32 local array_1=('FAIL')
33 printf '%s;' "${a[@]}" "${b[@]}"
37 unsafe_fn 'array_1[@]' 'array_2[@]'
38 safe_fn 'array_1[@]' 'array_2[@]'
40 echo after: ${array_1[@]}