Локальные переменные Bash

Локальные переменные Bash

Как объявить переменные, которые являются локальными для функций? Регулярно объявленные переменные экспортируются в глобальную область видимости. Пример:

$ 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

Связанный контент