diff options
Diffstat (limited to 'tests/varenv10.sub')
-rw-r--r-- | tests/varenv10.sub | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/varenv10.sub b/tests/varenv10.sub new file mode 100644 index 0000000..887cfd2 --- /dev/null +++ b/tests/varenv10.sub @@ -0,0 +1,47 @@ +#!/bin/bash +# +# various tests of unset when applied to variables at different local scopes + +# function unsetting variable at previous local scope, uncovering global + +inner() +{ + unset res + echo ${FUNCNAME}: ${res-res unset} + if [[ $1 == "set" ]]; then + res[0]="X" + res[1]="Y" + fi +} + +outer() +{ + local res= + inner "$1" + echo ${FUNCNAME}: "res: ${res[@]}" +} + +echo main: ${res-unset} +outer set +echo main: after first call: ${res-unset} +outer dontset +echo main: after second call: ${res-unset} + +unset -f outer inner +unset res + +# local scope, unset variable at the same scope as local declaration +func() +{ + typeset x=4 + + unset x + echo ${FUNCNAME}: ${x:-null or unset} +} + +x=outside +func +echo after func: x = $x + +unset -f func +unset x |