Bash
variables globales et locales
Recherche…
Introduction
Par défaut, chaque variable dans bash est globale pour chaque fonction, script et même pour le shell externe si vous déclarez vos variables dans un script.
Si vous voulez que votre variable soit locale à une fonction, vous pouvez utiliser local
pour que cette variable soit une nouvelle variable indépendante de la portée globale et dont la valeur ne sera accessible qu'à l'intérieur de cette fonction.
Variables globales
var="hello"
function foo(){
echo $var
}
foo
Va évidemment sortir "bonjour", mais cela fonctionne aussi dans l'autre sens:
function foo() {
var="hello"
}
foo
echo $var
Va aussi sortir "hello"
Variables locales
function foo() {
local var
var="hello"
}
foo
echo $var
N'affichera rien, car var est une variable locale à la fonction foo, et sa valeur n'est pas visible de l'extérieur.
Mélanger les deux ensemble
var="hello"
function foo(){
local var="sup?"
echo "inside function, var=$var"
}
foo
echo "outside function, var=$var"
Va sortir
inside function, var=sup?
outside function, var=hello
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow