See following script result: bash# cat declare-g.sh #!/bin/bash
var=global
f1()
{
declare var=local
f2
echo 3.$var
}
f2()
{
declare -g var
echo 1.$var
var=global-changed
echo 2.$var
}
f1
echo 4.$var
bash# /usr/local/bash-4.2.0/bin/bash declare-g.sh
1.local
2.global-changed
3.global-changed
4.global
bash#
I think the right result should be:
1.global
2.global-changed
3.local
4.global-changed
--
Clark
