![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité régulier
![]() Date d'inscription: décembre 2006
Messages: 17
|
Bonjour,
Je voudrais modifier certaines variables d'environnement de manière ponctuelle dans une session. Shell utilisé: soit le sh soit le ksh Cette modification doit se faire dans un script exécuté à la demande par le user de la session en cours. Dans mon script, des exports sont exécutés et si je fais un echo, dans le script, de ces variables d'environnement, elles sont bien modifiées comme voulu. Par contre, dès que le script se termine et que j'exécute un "set" en ligne de commande, je retrouve les variables d'environnement non modifiées comme si le script n'avait pas été exécuté. Pouvez-vous m'aider ? Merci voici mon script tout basique: #!/bin/sh # positionnement des variables d environnement liees a java echo 1 xxxxxx echo 2 xxxxxx read choix if test $choix = 1; then export JAVA_HOME=/usr/lpp/java/J1.4/J1.4 export JAVAHOME=/usr/lpp/java/J1.4/J1.4 export JVMHOME=/usr/lpp/java/J1.4/J1.4 export LIBPATH=/lib:/usr/lib:.:/usr/lpp/java/J1.4/J1.4/lib export PATH=/bin:.:/usr/lpp/java/J1.4/J1.4/bin echo "JAVA_HOME=$JAVA_HOME" echo "JAVAHOME=$JAVAHOME" echo "JVMHOME=$JVMHOME" echo "LIBPATH=$LIBPATH" echo "PATH=$PATH" elif test $choix = 2; then export JAVA_HOME=/usr/lpp/java/J6.0 export JAVAHOME=/usr/lpp/java/J6.0 export JVMHOME=/usr/lpp/java/J6.0 export LIBPATH=/lib:/usr/lib:.:/usr/lpp/java/J6.0/lib export PATH=/bin:.:/usr/lpp/java/J6.0/bin echo "JAVA_HOME=$JAVA_HOME" echo "JAVAHOME=$JAVAHOME" echo "JVMHOME=$JVMHOME" echo "LIBPATH=$LIBPATH" echo "PATH=$PATH" else echo "Saisir 1 ou 2 !" fi et l'exécution et le set avant et apres .... **** le set avant (extrait) **** JAVA_HOME="/usr/lpp/java/J6.0" LIBPATH="/lib:/usr/lib:.:/usr/lpp/java/J6.0/lib" PATH="/bin:.:/usr/lpp/java/J6.0/bin" **** l'exec ***** # env_java.sh 1 xxxxxx 2 xxxxxx 1 JAVA_HOME=/usr/lpp/java/J1.4/J1.4 JAVAHOME=/usr/lpp/java/J1.4/J1.4 JVMHOME=/usr/lpp/java/J1.4/J1.4 LIBPATH=/lib:/usr/lib:.:/usr/lpp/java/J1.4/J1.4/lib PATH=/bin:.:/usr/lpp/java/J1.4/J1.4/bin # **** le set apres (extrait) **** JAVA_HOME="/usr/lpp/java/J6.0" LIBPATH="/lib:/usr/lib:.:/usr/lpp/java/J6.0/lib" PATH="/bin:.:/usr/lpp/java/J6.0/bin" |
|
|
|
|
|
#2 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: juin 2007
Localisation: Paris
Messages: 414
|
Ca n'a rien de spécifique à AIX. Une variable d'environnement modifiée dans un sous-shell ne va jamais altérer cette même variable dans le shell appelant.
Il faut donc que tu exécute ton script par le shell courant et pas par un sous shell en utilisant la commande ".", ex: Code :
$ . ./mon-script.ksh |
|
|
|
![]() |
![]() |
||
script variable d'environnement [OS/390 PAIX 19.00 03 2064]
|
||
| Outils de la discussion | |
|
|