Sök…


Introduktion

Som standard är varje variabel i bash global för alla funktioner, skript och till och med det yttre skalet om du förklarar dina variabler i ett skript.

Om du vill att din variabel ska vara lokal för en funktion kan du använda local att ha den variabeln en ny variabel som är oberoende av det globala omfånget och vars värde endast är tillgängligt i den funktionen.

Globala variabler

var="hello"

function foo(){
    echo $var
}

foo

Visas uppenbarligen "hej", men detta fungerar tvärtom också:

function foo()  {
    var="hello"
}

foo
echo $var

Skickar också ut "hello"

Lokala variabler

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

foo
echo $var

Kommer inte att mata ut ingenting, eftersom var är en variabel som är lokal för funktionen foo, och dess värde inte syns från utsidan av den.

Blanda de två tillsammans

var="hello"

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

foo
echo "outside function, var=$var"

Kommer att matas ut

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow