J'essaie de comprendre l'utilisation de la export
commande.
J'ai essayé d'utiliser man export
, mais il n'y a pas de manuel pour cette commande.
Quelqu'un peut-il s'il vous plaît m'aider à comprendre l'utilisation de export
sous UNIX?
J'essaie de comprendre l'utilisation de la export
commande.
J'ai essayé d'utiliser man export
, mais il n'y a pas de manuel pour cette commande.
Quelqu'un peut-il s'il vous plaît m'aider à comprendre l'utilisation de export
sous UNIX?
Réponses:
Lorsque vous exécutez un programme, le programme enfant hérite de ses variables d'environnement du parent. Par exemple, si $HOME
est défini sur /root
dans le parent, la $HOME
variable de l'enfant est également définie sur /root
.
Cela s'applique uniquement aux variables d'environnement marquées pour l'exportation. Si vous définissez une variable sur la ligne de commande comme
$ FOO="bar"
Cette variable ne sera pas visible dans les processus enfants. Sauf si vous l'exportez:
$ export FOO
Vous pouvez combiner ces deux déclarations en une seule dans bash (mais pas dans sh old-school):
$ export FOO="bar"
Voici un exemple rapide montrant la différence entre les variables exportées et non exportées. Pour comprendre ce qui se passe, sachez que sh -c
crée un processus shell enfant qui hérite de l'environnement du shell parent.
$ FOO=bar
$ sh -c 'echo $FOO'
$ export FOO
$ sh -c 'echo $FOO'
bar
Remarque: pour obtenir de l'aide sur les commandes intégrées du shell, utilisez help export
. Les fonctions intégrées du shell sont des commandes qui font partie de votre shell plutôt que des exécutables indépendants comme /bin/ls
.
Unix
Les commandes env, set et printenv affichent toutes les variables d'environnement et leurs valeurs. env et set sont également utilisés pour définir des variables d'environnement et sont souvent incorporés directement dans le shell. printenv peut également être utilisé pour imprimer une seule variable en donnant ce nom de variable comme seul argument de la commande.
Sous Unix, les commandes suivantes peuvent également être utilisées, mais dépendent souvent d'un certain shell.
export VARIABLE=value # for Bourne, bash, and related shells
setenv VARIABLE value # for csh and related shells
Vous pouvez jeter un œil à ceci sur
VARIABLE=value; export VARIABLE
plutôt que d'assigner et d'exporter à la fois. La set
commande dans C Shell est pour les variables shell plutôt que pour les variables d'environnement; setenv
est la contrepartie de export
. La set
commande dans les shells dérivés de Bourne imprime toutes les variables, pas seulement les variables exportées (d'environnement). Historiquement du moins, la env
commande est distincte du shell (pas un élément intégré), bien qu'elle puisse facilement être transformée en un élément intégré. Il définit l'environnement pour une commande spécifique, pas le shell qui l'exécute.
export
est une commande intégrée du bash
shell et d'autres variantes du shell Bourne . Il est utilisé pour marquer une variable shell pour l'exportation vers les processus enfants.