Commande d'exportation UNIX [fermée]

158

J'essaie de comprendre l'utilisation de la exportcommande.

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 exportsous UNIX?

Jake
la source
c'est extrêmement étrange qu'il n'y ait pas de page de manuel pour cela. Je n'en vois pas non plus.
Pinocchio

Réponses:

226

Lorsque vous exécutez un programme, le programme enfant hérite de ses variables d'environnement du parent. Par exemple, si $HOMEest défini sur /rootdans le parent, la $HOMEvariable 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 -ccré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.

John Kugelman
la source
16

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

user931841
la source
4
Bienvenue dans StackOverflow. Notez que le shell Bourne classique nécessiterait: VARIABLE=value; export VARIABLEplutôt que d'assigner et d'exporter à la fois. La setcommande dans C Shell est pour les variables shell plutôt que pour les variables d'environnement; setenvest la contrepartie de export. La setcommande dans les shells dérivés de Bourne imprime toutes les variables, pas seulement les variables exportées (d'environnement). Historiquement du moins, la envcommande 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.
Jonathan Leffler
0

exportest utilisé pour définir les variables d'environnement. Par exemple:

export EDITOR=pico

Définira votre éditeur de texte par défaut comme la picocommande.

Icare
la source