$ a=OUTSIDE $ f1 () { local a=INSIDE; f2; }
$ f2 () { echo "before: $a"; unset a; echo "after: $a"; } $ f3 () { local a=INSIDE; echo "before: $a"; unset a; echo "after: $a"; } $ f1 before: INSIDE after: OUTSIDE $ f3 before: INSIDE after: I can unset an 'external-local' variable, and then get his global scope but I can't do the same with an 'internal-local' one may be this is not perfectly coherent (*imho*, local variables should not be seen in other functions...) thanks for your job bye