Vous n'avez besoin que export
de variables qui doivent être "vues" par d'autres programmes que vous lancez dans le shell, alors que celles qui ne sont utilisées que dans le shell lui-même n'ont pas besoin d'être export
éditées.
Voici ce que dit la page de manuel:
The supplied names are marked for automatic export to the environ‐
ment of subsequently executed commands. If the -f option is given,
the names refer to functions. If no names are given, or if the -p
option is supplied, a list of all names that are exported in this
shell is printed. The -n option causes the export property to be
removed from each name. If a variable name is followed by =word,
the value of the variable is set to word. export returns an exit
status of 0 unless an invalid option is encountered, one of the
names is not a valid shell variable name, or -f is supplied with a
name that is not a function.
Ceci peut être démontré avec ce qui suit:
$ MYVAR="value"
$ echo ${MYVAR}
value
$ echo 'echo ${MYVAR}' > echo.sh
$ chmod +x echo.sh
$ ./echo.sh
$ export MYVAR="value-exported"
$ ./echo.sh
value-exported
Explication:
- Je me suis d'abord mis
${MYVAR}
à être une variable Shell avec MYVAR="value"
. En utilisant echo
je peux en faire écho car echo fait partie de la coque.
- Puis je crée
echo.sh
. C'est un petit script qui fait fondamentalement la même chose, cela résonne ${MYVAR}
, mais la différence est qu'il s'exécutera dans un processus différent car il s'agit d'un script séparé.
- Lorsque l'appelant
echo.sh
ne génère rien, car le nouveau processus n'hérite pas${MYVAR}
- J'exporte ensuite
${MYVAR}
dans mon environnement avec le export
mot clé
- Lorsque je lance à
echo.sh
nouveau la même chose , cela rappelle le contenu de ${MYVAR}
parce qu’il provient de l’environnement
Donc, pour répondre à votre question:
Cela dépend où une variable va être utilisée, si vous devez l'exporter ou non.