Lire à propos de cette question: Dans zsh, comment puis-je répertorier toutes les variables d'environnement? , Je me suis demandé, comment puis-je lister toutes les variables du shell ?
En outre, la distinction entre les variables de shell et les variables d' environnement s'applique-t-elle aux shells autres que zsh?
Je suis principalement intéressé par Bash et Zsh, mais ce serait formidable de savoir comment faire cela dans d'autres shells traditionnels.
declare -p
faire de mêmeset -o posix
n'existe pas dans zsh;set
ne génère pas de définitions de fonction.set -o posix
est une erreur de syntaxe dans la plupart des shells.exec
, les variables shell ne le sont pas.Il existe de nombreuses alternatives:
printenv
env
exportation
ensemble
est également utile pour obtenir des variables shell.
Si vous avez besoin d'informations supplémentaires (entier, exporté), vous devez plutôt utiliser
composer
l'exportation a l'avantage que sa sortie peut être immédiatement relue sur le shell.
Enfin, il y a
compgen -v
qui montre toutes les variables, le shell et l'environnement, sans leur valeur ni info supplémentaire. Vous devrez faire écho à $ VARIABLE_NAME pour trouver la valeur de la variable. Mais au moins la liste est complète. Il appartient à bash , pas à zsh .
la source
export
n'a aucun avantage surset
, au moins, quand il s'agit de citer pour la rentrée de shell. Etprintenv
etenv
ne concernent pas du tout les variables shell, bien que celles-ci coïncident souvent avec les variables d'environnement.Avec
zsh
, vous pouvez utilisertypeset
, qui donne plus d'informations queset
, par exemple, le type des variables. Vous pouvez toujours filtrer la sortie avecgrep
oused
, selon ce que vous voulez. Les variables d'environnement sont marquées commeexported
dans la sortie.la source