Bash
globala och lokala variabler
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