Zoeken…


Invoering

Standaard is elke variabele in bash globaal voor elke functie, script en zelfs de externe shell als u uw variabelen in een script declareert.

Als u wilt dat uw variabele lokaal is voor een functie, kunt u local om die variabele een nieuwe variabele te geven die onafhankelijk is van het globale bereik en waarvan de waarde alleen toegankelijk is binnen die functie.

Globale variabelen

var="hello"

function foo(){
    echo $var
}

foo

Zal duidelijk "hallo" uitvoeren, maar dit werkt ook andersom:

function foo()  {
    var="hello"
}

foo
echo $var

Zal ook "hello"

Lokale variabelen

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

foo
echo $var

Zal niets uitvoeren, aangezien var een variabele is die lokaal is voor de functie foo en de waarde ervan niet zichtbaar is van buitenaf.

De twee samen mengen

var="hello"

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

foo
echo "outside function, var=$var"

Zal uitvoeren

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow