Pour illustrer ce que disent les autres réponses :
$ foo="Hello, World"
$ echo $foo
Hello, World
$ bar="Goodbye"
$ export foo
$ bash
bash-3.2$ echo $foo
Hello, World
bash-3.2$ echo $bar
bash-3.2$
export
rend la variable disponible aux sous-processus.
C'est-à-dire
export name=value
signifie que le nom de la variable est disponible pour n'importe quel processus vous exécutez à partir de ce processus shell. Si vous voulez qu'un processus utilise cette variable, utilisez export
, et exécutez le processus à partir de ce shell.
name=value
signifie que la portée de la variable est limitée au shell et n'est disponible pour aucun autre processus. Vous l'utiliseriez pour (par exemple) les variables de boucle, les variables temporaires, etc.
Il est important de noter que l'exportation d'une variable ne la rend pas disponible pour les processus parents. Autrement dit, spécifier et exporter une variable dans un processus généré ne la rend pas disponible dans le processus qui l'a lancée.