Bash
глобальные и локальные переменные
Поиск…
Вступление
По умолчанию каждая переменная в bash является глобальной для каждой функции, скрипта и даже внешней оболочки, если вы объявляете свои переменные внутри скрипта.
Если вы хотите, чтобы ваша переменная была локальной для функции, вы можете использовать local
для этой переменной новую переменную, независимую от глобальной области и значение которой будет доступно только внутри этой функции.
Глобальные переменные
var="hello"
function foo(){
echo $var
}
foo
Очевидно, будет выводиться «привет», но это тоже работает наоборот:
function foo() {
var="hello"
}
foo
echo $var
Будет также выводить "hello"
Местные переменные
function foo() {
local var
var="hello"
}
foo
echo $var
Не будет выводить ничего, поскольку var является переменной, локальной для функции foo, и ее значение не видно из-за пределов.
Смешивание двух
var="hello"
function foo(){
local var="sup?"
echo "inside function, var=$var"
}
foo
echo "outside function, var=$var"
Выйдет
inside function, var=sup?
outside function, var=hello
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow