考虑以下代码:
function child()
{
echo $var
}
function parent()
{
local var=5
child
}
我已经在我的机器上测试了它,它似乎可以工作,但我无法找到任何明确描述局部变量的这种用法的信息。也就是说,当我在一个函数中声明一个局部变量并从该函数调用其他函数时,我可以在后者中使用该变量(甚至嵌套得更深)吗?它在 bash 中合法吗?它是所有版本的标准吗?
bash
使用动态范围。的价值var
in child
不是由哪里决定的child
被定义,但是由它在哪里定义called。如果主体中没有本地定义child
,shell 查找的下一个地方是函数体,其中child
被调用,等等。这local
修饰符在该调用的本地函数中创建一个变量,因此它不会影响任何封闭范围内的变量值。但它对任何人来说都是可见的enclosed scope.
a () { echo "$var"; }
b () { local var="local value"; a; }
var="global value"
a # outputs "global value"
b # outputs "local value"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)