web-dev-qa-db-fra.com

Comment définir une variable globale persistante?

Je crée un bashscript pour configurer une petite application que j'écris. Une partie de cette configuration nécessite de définir une variable d'environnement afin que d'autres processus puissent la référencer.

Mon test de script Shell simple ressemble à ceci:

#!/bin/sh

export FOO=abc

Je comprends pourquoi FOO ne sera pas visible après l'exécution du script, si c'est fait ainsi:

$ sh script.sh

et pourquoi cela le rendra visible:

$ source script.sh

c'est donc une solution de contournement, mais je me demande comment les scripts d'installation courants font cela - par exemple, je suis presque sûr que les installateurs comme mysql etc. définissent des variables d'environnement globales.

Quel est le bon moyen de le faire? Je suppose que je peux demander à mes utilisateurs d'installer en exécutant:

$ source script.sh

mais je ne sais pas s'il y a une meilleure façon.

Merci

2
user3203425

Ajoutez ces lignes à votre script. Votre script doit avoir accès à root.

echo 'export FOO=abc' > /etc/profile.d/foo.sh

Au prochain redémarrage, il sera disponible.

1
dedunumax