Bash
zmienne globalne i lokalne
Szukaj…
Wprowadzenie
Domyślnie każda zmienna w bash jest globalna dla każdej funkcji, skryptu, a nawet zewnętrznej powłoki, jeśli deklarujesz swoje zmienne w skrypcie.
Jeśli chcesz, aby zmienna była lokalna dla funkcji, możesz użyć local
aby ta zmienna była nową zmienną, która jest niezależna od zasięgu globalnego i której wartość będzie dostępna tylko wewnątrz tej funkcji.
Zmienne globalne
var="hello"
function foo(){
echo $var
}
foo
Wyśle oczywiście „hello”, ale działa to również w drugą stronę:
function foo() {
var="hello"
}
foo
echo $var
Wyświetli również "hello"
Zmienne lokalne
function foo() {
local var
var="hello"
}
foo
echo $var
Nic nie wyświetli, ponieważ var jest zmienną lokalną dla funkcji foo, a jej wartość nie jest widoczna z zewnątrz.
Mieszanie dwóch razem
var="hello"
function foo(){
local var="sup?"
echo "inside function, var=$var"
}
foo
echo "outside function, var=$var"
Wyjdzie
inside function, var=sup?
outside function, var=hello
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow