Listar todas as minhas variáveis [duplicate]

2

Estou apenas aprendendo o básico, incluindo como declarar e mexer com variáveis. Existe uma maneira simples de exibir uma lista de todas as variáveis que eu nomeei? (Tudo que eu encontrei pesquisando só fala sobre variáveis de ambiente, que podem ser o que eu estou procurando, mas provavelmente não?)

    
por Lenoxus 23.04.2013 / 23:54

2 respostas

6

A execução de declare em si fornecerá uma lista de todas as variáveis ambientais no shell atual , incluindo aquelas que você mesmo definiu. Ele também incluirá todas as funções, a menos que você use a opção -p que as ignora, mas adiciona algum ruído extra.

    
por 24.04.2013 / 00:03
1

Existem dois tipos diferentes de variáveis (na verdade, mais do que isso, mas, neste contexto, apenas 2), privadas e exportadas.

  • Variáveis privadas são variáveis que podem ser usadas no shell (ou script), mas não por programas lançados pelo shell (ou script). Você pode obter uma lista de todas as variáveis, incluindo as exportadas, usando declare , typeset ou set . No bash todos os 3 fazem a mesma coisa.

  • As variáveis exportadas podem ser usadas pelo shell ou por programas lançados por ele.
    Você pode obter uma lista de variáveis exportadas usando env .

Uma coisa importante a notar é quando se faz coisas como esta:

FOO="bar"
echo "$FOO"

$FOO é uma variável privada / não exportada. O shell está realmente expandindo $FOO para bar antes de passar para echo . Então, echo está sendo chamado como echo "bar" .

Você pode exportar variáveis fazendo export FOO ou export FOO="bar" .
Além disso, você pode exportar uma variável para apenas uma única chamada para um programa adicionando a variável no início do comando. Por exemplo

FOO="bar" cmd1
cmd2

cmd1 terá acesso a $FOO , mas cmd2 não.

    
por 24.04.2013 / 02:45

Tags