Bash
variabili globali e locali
Ricerca…
introduzione
Per impostazione predefinita, ogni variabile in bash è globale per ogni funzione, script e anche la shell esterna se si dichiarano le variabili all'interno di uno script.
Se si desidera che la variabile sia locale a una funzione, è possibile utilizzare local
per disporre di tale variabile una nuova variabile indipendente dall'ambito globale e il cui valore sarà accessibile solo all'interno di tale funzione.
Variabili globali
var="hello"
function foo(){
echo $var
}
foo
Ovviamente uscirà "ciao", ma questo funziona anche nel contrario:
function foo() {
var="hello"
}
foo
echo $var
Uscirà anche "hello"
Variabili locali
function foo() {
local var
var="hello"
}
foo
echo $var
Non produrrà nulla, dato che var è una variabile locale alla funzione foo, e il suo valore non è visibile al di fuori di esso.
Mescolando i due insieme
var="hello"
function foo(){
local var="sup?"
echo "inside function, var=$var"
}
foo
echo "outside function, var=$var"
Uscirà
inside function, var=sup?
outside function, var=hello
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow