init version.
[bush.git] / tests / exp / new-exp / new-exp12.sub
blob1fbd5d63d3c2bb219454e33009000b5cc17cf9a6
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
18 array_1=("PASS")
19 array_2=("1 foo" "2 foo")
21 unsafe_fn ()
23     local array_1=('HELLO')
24     local a=("${!1}") b=("${!2}")
25     printf '%s;' "${a[@]}" "${b[@]}"
26     printf '\n'
29 safe_fn ()
31     local a=("${!1}") b=("${!2}")
32     local array_1=('FAIL')
33     printf '%s;' "${a[@]}" "${b[@]}"
34     printf '\n'
37 unsafe_fn 'array_1[@]' 'array_2[@]'
38 safe_fn 'array_1[@]' 'array_2[@]'
40 echo after: ${array_1[@]}