Lorsque vous exécutez un programme, le programme enfant hérite de ses variables d'environnement de la société mère. Par exemple, si $HOME
est définie à l' /root
dans le parent de l'enfant de l' $HOME
variable est également mis à l' /root
.
Cela s'applique uniquement à la variable d'environnement qui sont marqués pour l'exportation. Si vous définissez une variable à la ligne de commande comme
$ FOO="bar"
Cette variable ne sera pas visible dans les processus enfants. Non, sauf si vous les exporter:
$ export FOO
Vous pouvez combiner ces deux états en un seul en bash (mais pas dans la vieille école sh):
$ export FOO="bar"
Voici un petit exemple montrant la différence entre exportés et non exportée variables. Pour comprendre ce qui se passe savons qu' sh -c
crée un enfant de processus du shell qui hérite de la mère de shell de l'environnement.
$ FOO=bar
$ sh -c 'echo $FOO'
$ export FOO
$ sh -c 'echo $FOO'
bar
Remarque: Pour obtenir de l'aide sur le shell les commandes intégrées utilisation help export
. Shell built-ins sont des commandes qui font partie de votre shell plutôt que de les indépendants les exécutables comme /bin/ls
.