Bash variáveis ​​locais

Bash variáveis ​​locais

Como posso declarar variáveis ​​que são locais para funções? Vars declarados regularmente são exportados para o escopo global. Exemplo:

$ cat t.sh
function locals_test() 
{
  x="bar"
}

$ echo $x

$ locals_test 
$ echo $x
bar

Responder1

Usar local:

local x=bar

Então, xserá local para a função. Para declarar, por exemplo, matrizes ou números, localsão utilizadas as mesmas opções de declare. A saída será duas linhas vazias:

#!/bin/bash
function locals_test() 
{
  local x=bar
}

echo $x
locals_test
echo $x

informação relacionada