Dans zsh, comment puis-je répertorier toutes les variables d'environnement?

26

Je veux obtenir une liste de toutes les variables d'environnement (variables shell? Variables exportées?) Et leurs valeurs à un moment donné, en zsh.
Quelle est la bonne façon de procéder?

Ali
la source

Réponses:

35

Cela ressemble à ce que vous voulez env.

Chris Down
la source
c'était gênant! Merci. Mais maintenant que nous y sommes, si je n'avais personne à demander, comment aurais-je pu trouver cela?
Ali
3
@Ali Eh bien, ce envn'est pas spécifique à zsh, c'est un programme autonome. Cela dit, le résultat numéro un sur Google pour les "variables d'environnement de liste" dit d'utiliser env, donc je suppose que c'est une façon ;-)
Chris Down
1
Je veux dire, si je n'avais pas de connexion Internet! Je sais que je mourrais dans quelques jours sans connexion Internet, mais dans ces quelques jours comment puis-je rechercher cela dans la documentation / man ...?
Ali
2
vous pourriez faire quelque chose commeapropos environment
glenn jackman
1
@Ali, si vous vouliez trouver cela sans aide, j'aurais commencé avec man zshou googler pour les "variables d'impression zsh" ou similaire.
Alex
21

exportimprime la liste des variables d'environnement et leurs valeurs. Les valeurs sont citées, la sortie de exportconvient à la lecture dans le shell. Les variables sont imprimées par ordre alphabétique.

Si vous voulez également des variables shell, utilisez set. Si vous voulez des variables shell avec annotations de type ( exported, integer, etc.), l' utilisation typeset.

Vous pouvez également utiliser exportet setsur d'autres shells, mais la plupart ne citent pas la sortie, elle n'est donc pas analysable. typesetest disponible (avec un comportement différent) sur ksh et bash.

Si vous voulez les variables d'environnement, il y a aussi la envcommande, qui imprime non triée, sans guillemets

Si vous ne voulez que les noms, accédez au parameterstableau associatif. Les clés sont les noms des paramètres et les valeurs indiquent les types.

Gilles 'SO- arrête d'être méchant'
la source
2
echo $ZSH_VERSIONrevient 5.0.5, mais quand je le fais, env | grep ZSH_VERSIONje ne vois aucune correspondance. N'est-ce ZSH_VERSIONpas une variable d'environnement? Qu'est-ce que je rate?
Josh
3
@Josh C'est une variable shell, non exportée vers l'environnement.
Gilles 'SO- arrête d'être méchant'
@Gilles Comment énumérerions-nous tous ces éléments également?
Daniel Que
@DanielQue Deuxième paragraphe de ma réponse
Gilles 'SO- arrête d'être méchant'
@Gilles C'est bizarre, les variables locales comme ZSH_HIGHLIGHT_STYLESne s'affichent pas lorsque j'utilise set, ou l'une des autres commandes.
Daniel Que