Как объявить переменные, которые являются локальными для функций? Регулярно объявленные переменные экспортируются в глобальную область видимости. Пример:
$ cat t.sh
function locals_test()
{
x="bar"
}
$ echo $x
$ locals_test
$ echo $x
bar
решение1
Использовать local
:
local x=bar
Затем, x
будет локальным для функции. Для объявления, например, массивов или чисел, local
принимает те же параметры, что и declare
. Вывод будет состоять из двух пустых строк:
#!/bin/bash
function locals_test()
{
local x=bar
}
echo $x
locals_test
echo $x