Je suis un peu d'une perte à la fin de set
et export
dans Bash (et je pense que probablement d' autres shells).
Je pense que c'est pour définir des variables d'environnement, mais cela peut être fait simplement VARIABLE=VALUE
, n'est-ce pas?
De plus, en tapant set
et export
à eux seuls, affichent des valeurs différentes.
Alors, quel est leur but?
Réponses:
export
exportations vers les enfants du processus en cours, ils ne sont pas exportés par défaut. Par exemple:set
d'autre part, définit les attributs du shell, par exemple les paramètres de position.Notez que ce
baz
n'est pas affecté àfoo
, il devient simplement un paramètre de position littéral. Il y a beaucoup d'autres choses àset
faire (principalement des options de shell), voirhelp set
.Comme pour l'impression,
export
appelé sans argument imprime toutes les variables de l'environnement du shell.set
imprime également les variables qui ne sont pas exportées. Il peut aussi exporter d’autres objets (même s’il faut noter que ce n’est pas portable), voirhelp export
.la source
foo=bar command
. Il s'agit d'une exportation implicite pour une seule commande. La deuxième possibilité est qu'ilhttp_proxy
est déjà exporté dans votre environnement avant que vous ne le modifiiez.Voir
help set
: set est utilisé pour définir les attributs du shell et les attributs de position.Les variables non exportées ne sont pas héritées par les processus enfants.
export
est utilisé pour marquer une variable à exporter.la source