162 votes

Comment définir une variable d'environnement uniquement pour la durée du script ?

Sous Linux (Ubuntu 11.04) en bash, est-il possible de définir temporairement une variable d'environnement qui ne sera différente de la variable normale que pendant la durée du script ? Par exemple, dans un script shell, rendre portable une application qui enregistre dans HOME en définissant temporairement HOME dans un dossier du répertoire de travail actuel, puis en lançant l'application.

148voto

Rockallite Points 178
VAR1=value1 VAR2=value2 myScript args ...

78voto

glenn jackman Points 69748
env VAR=value myScript args ...

40voto

Henning Makholm Points 13132

Il suffit de mettre

 export HOME=/blah/whatever

au point du script où vous souhaitez que le changement se produise. Étant donné que chaque processus a son propre ensemble de variables d'environnement, cette définition cessera automatiquement d'avoir toute signification lorsque le script se terminera (et avec elle l'instance de bash qui a un environnement modifié).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X