Suche…


Einführung

Standardmäßig ist jede Variable in bash für alle Funktionen, Skripts und sogar die äußere Shell global , wenn Sie Ihre Variablen innerhalb eines Skripts deklarieren.

Wenn Sie möchten, dass Ihre Variable lokal für eine Funktion ist, können Sie local , um für diese Variable eine neue Variable zu erstellen, die unabhängig vom globalen Gültigkeitsbereich ist und deren Wert nur innerhalb dieser Funktion verfügbar ist.

Globale Variablen

var="hello"

function foo(){
    echo $var
}

foo

Wird offensichtlich "Hallo" ausgeben, aber das funktioniert auch andersherum

function foo()  {
    var="hello"
}

foo
echo $var

Wird auch "hello" ausgeben

Lokale Variablen

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

foo
echo $var

Gibt nichts aus, da var eine für die Funktion foo lokale Variable ist und deren Wert von außen nicht sichtbar ist.

Mische die beiden zusammen

var="hello"

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

foo
echo "outside function, var=$var"

Wird ausgegeben

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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow