shell变量之辨[7]

[局部变量]

a="global";
function func()
{
    a="func_global";
    echo "in func: a = $a";
}

function func2()
{
    local a="func2_local";
    echo "in func2: a = $a";
}

echo "a = $a";
func;
echo "a = $a";
func2;
echo "a = $a";

在函数中可以通过”local”的方式标明变量只在局部使用, 也就是说在fun2中, 我们通过local将变量设置为了只在函数内部使用. 因此它的赋值等操作不会影响函数之外的同名变量.

局部变量能让我们方便地使用递归..但是我们非常不推荐:
慢, 可能容易栈溢出


本文链接:https://www.poisonbian.com/post/219.html 转载需授权!

分享到:
原文链接:,转发请注明来源!
「shell变量之辨[7]」评论列表

发表评论