Buscar..


Introducción

De forma predeterminada, cada variable en bash es global para cada función, script e incluso el shell externo si está declarando sus variables dentro de un script.

Si desea que su variable sea local a una función, puede usar local para tener esa variable como una nueva variable que es independiente del alcance global y cuyo valor solo será accesible dentro de esa función.

Variables globales

var="hello"

function foo(){
    echo $var
}

foo

Obviamente saldrá "hola", pero esto funciona al revés también:

function foo()  {
    var="hello"
}

foo
echo $var

También saldrá "hello"

Variables locales

function foo() {
    local var
    var="hello"
}

foo
echo $var

No generará nada, ya que var es una variable local de la función foo, y su valor no es visible desde fuera de ella.

Mezclando los dos juntos.

var="hello"

function foo(){
    local var="sup?"
    echo "inside function, var=$var"
}

foo
echo "outside function, var=$var"

Saldrá

inside function, var=sup?
outside function, var=hello


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow