improve of cmpl.
[bush.git] / tests / varenv10.sub
blobaa0175af4fe3cce72d9ba9d47ee0ad884eb94af3
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 # various tests of unset when applied to variables at different local scopes
17 # function unsetting variable at previous local scope, uncovering global
19 inner()
21     unset res
22     echo ${FUNCNAME}: ${res-res unset}
23     if [[ $1 == "set" ]]; then
24         res[0]="X"
25         res[1]="Y"
26     fi
29 outer()
31     local res=
32     inner "$1"
33     echo ${FUNCNAME}: "res: ${res[@]}"
36 echo main: ${res-unset}
37 outer set
38 echo main: after first call: ${res-unset}
39 outer dontset 
40 echo main: after second call: ${res-unset}
42 unset -f outer inner
43 unset res
45 # local scope, unset variable at the same scope as local declaration
46 func()
48         typeset x=4
50         unset x
51         echo ${FUNCNAME}: ${x:-null or unset}
54 x=outside
55 func
56 echo after func: x = $x
58 unset -f func
59 unset x