Liste todas as minhas variáveis ​​

Liste todas as minhas variáveis ​​

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

Responder1

A execução declareem si lhe dará uma lista de todas as variáveis ​​ambientaisno shell atual, incluindo aqueles que você mesmo definiu. Também incluirá quaisquer funções, a menos que você use a -popção que as ignora, mas adiciona algum ruído extra.

Responder2

Existem 2 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 iniciados pelo shell (ou script).
    Você pode obter uma lista de todas as variáveis, incluindo as exportadas, usando declare, typesetou set. No bash, todos os 3 fazem a mesma coisa.

  • Variáveis ​​exportadas podem ser usadas tanto pelo shell quanto por programas iniciados por ele.
    Você pode obter uma lista de variáveis ​​exportadas usando env.

Uma coisa importante a ser observada é ao fazer coisas como esta:

FOO="bar"
echo "$FOO"

$FOOé uma variável privada/não exportada. O shell está realmente se expandindo $FOOantes barde passar para echo. Então, echona verdade, 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 chamada a um programa adicionando a variável no início do comando. Por exemplo

FOO="bar" cmd1
cmd2

cmd1terá acesso, $FOOmas cmd2não terá.

informação relacionada