No zsh, como posso listar todas as variáveis ​​de ambiente?

26

Eu quero obter uma lista de todas as variáveis ​​de ambiente (variáveis ​​de shell? Variáveis ​​exportadas?) E seus valores em um determinado momento, no zsh.
Qual é a maneira correta de fazer isso?

Todos
fonte

Respostas:

35

Parece que você quer env.

Chris Down
fonte
isso foi embaraçoso! Obrigado. Mas agora que estamos nisso, se eu não tinha ninguém para perguntar, como eu poderia ter encontrado isso?
Ali
3
@ Ali Bem, envnão é específico zsh, é um programa independente. Dito isto, o número um resultado no Google por "variáveis de ambiente lista", diz a usar env, então eu acho que essa é uma maneira ;-)
Chris Baixo
11
Quero dizer, se eu não tivesse conexão com a internet! Eu sei que morreria em alguns dias sem conexão com a Internet, mas nesses poucos dias como posso pesquisar isso na documentação / man ...?
Ali
2
você poderia fazer algo parecido comapropos environment
glenn jackman 03/02/12
11
@ Ali, se você quiser encontrar isso sem ajuda, eu teria começado com man zshou pesquisando no Google por "variáveis ​​de impressão zsh" ou similar.
Alex
21

exportimprime a lista de variáveis ​​de ambiente e seus valores. Os valores são citados, a saída de exporté adequada para leitura novamente no shell. As variáveis ​​são impressas em ordem alfabética.

Se você também deseja variáveis ​​de shell, use set. Se você quiser variáveis do shell com anotações de tipo ( exported, integer, etc.), o uso typeset.

Você pode usar exporte setem outros shells também, mas a maioria não cita a saída, portanto não é analisável. typesetestá disponível (com comportamento diferente) no ksh e no bash.

Se você deseja as variáveis ​​de ambiente, há também o envcomando, que imprime sem classificação, sem aspas

Se você deseja apenas os nomes, acesse a parametersmatriz associativa. As chaves são os nomes dos parâmetros e os valores indicam os tipos.

Gilles 'SO- parar de ser mau'
fonte
2
echo $ZSH_VERSIONretorna 5.0.5, mas quando o faço env | grep ZSH_VERSION, não vejo correspondências. Não ZSH_VERSIONé uma variável de ambiente? o que estou perdendo?
28413 Josh
3
@ Josh É uma variável de shell, não exportada para o ambiente.
Gilles 'SO- stop be evil'
@Gilles Como listaríamos todos eles também?
Daniel Que
@DanielQue Segundo parágrafo da minha resposta
Gilles 'SO- stop be evil'
@ Gilles É estranho, variáveis ​​locais como ZSH_HIGHLIGHT_STYLESnão aparecem quando eu uso set, ou qualquer outro comando.
Daniel Que