Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1319 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [sh] export de variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[sh] export de variable

n°625849
Riot
Buy me a riot
Posté le 30-01-2004 à 11:26:33  profilanswer
 

j'ai fait un script permettant de recueillir toutes les options de compils (-Wall, -DDEBUG, ...)
et ensuite qd je lance le make, celui-ci ne connait pas ma variable regroupant ttes mes options de compil.
 
ça c mon script:

Code :
  1. echo "Mode DEBUG? [o/n] (defaut n)"
  2. read Rep
  3. while [ $Rep != "n" -a $Rep != "o" ]
  4.   do
  5.   echo "$Rep n'est pas n ou o"
  6.   read Rep
  7.   done
  8. if [ $Rep = "o" ];then
  9.     debug="-DDEBUG"
  10. fi
  11. export CompilFlags="$debug"
  12. echo $CompilFlags


 
ça c mon makefile:

Code :
  1. CC=gcc
  2. prog : clean stylet.o prog.o
  3. $(CC) -o prog stylet.o prog.o
  4. prog.o : prog.c stylet.h
  5. $(CC) -c $(CompilFlags) prog.c
  6. stylet.o : stylet.c stylet.h
  7. $(CC) -c $(CompilFlags) stylet.c
  8. clean:
  9. rm -f *.o *~
  10. veryclean:
  11. rm -f *.o *~ prog


 
mici!

mood
Publicité
Posté le 30-01-2004 à 11:26:33  profilanswer
 

n°625875
aigles
Posté le 30-01-2004 à 11:45:00  profilanswer
 

Pour que cela fonctionne il faut que le make soit lancé dans le script qui modifie la variable.
 
 


---------------
Jean Pierre.
n°625995
Riot
Buy me a riot
Posté le 30-01-2004 à 12:51:35  profilanswer
 

ouais j'ai remarqué ça...
mais n'est-il pas possible de lancer le make en dehors du script???
parce que le but de l'export est qd mm que la variable soit globale! non?

n°626066
aigles
Posté le 30-01-2004 à 13:20:14  profilanswer
 

Quand tu lances ton script celui-ci est exécuté dans un sous-process qui récupére l'environnement du process pére (dont les variables exportées et le répertoire courant).  
En fin d'exécution les modifications sur l'environnement sont perdues (modification variable, changement répertoire courant), elles ne remontent pas au niveau du process pére.  
 
Pour que la modification/définition de la variable CompilFlags soit conservée, il faut exécuter ton script dans le 'environnement en cours (process), pour cela il faut utiliser la syntaxe d'appel suivante :


. mon_script
make


 
 


---------------
Jean Pierre.
n°626431
Riot
Buy me a riot
Posté le 30-01-2004 à 19:29:03  profilanswer
 

merci pour cette précision aigles!
 
 
 
(pour ma culture) il n'est pas possible de réaliser ce que je souhaite?? (p-ê avec un 'set')
 
thx encore.

n°626625
aigles
Posté le 30-01-2004 à 22:47:59  profilanswer
 

Pour définir ta variable je ne vois que la méthode d'appel de ton shell par '.' (source).
Pour être de na pas oublier de faire l'appel comme il faut, une solution est d'exécuter ton script par l'intermédiaire d'un alias que tu peux définir dans ton script de login :


alias options='. mon_script'


et pour l'utilisation :


options
make


 


---------------
Jean Pierre.
n°626660
Riot
Buy me a riot
Posté le 31-01-2004 à 00:17:14  profilanswer
 

oki j'essaierai ça.
merci encore!!! (y)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [sh] export de variable

 

Sujets relatifs
[PERL/CGI] Récupérer les variable du script ?[HTML + PHP ] variable text dans textarea [close]
Conversion d'une chaine de caractères en identificateur de variableProblème d'affichage d'une variable
Comment passer un ' ds une variable lors d'une requete sql[SH] Contenu variable different de l'affichage
Comment tester l appartenance d une variable a un type ??gestion du retour a la ligne dans une variable???
[VB] petit defi : récuperer le nom d'une variable dans un TYPE[XSL] Initialisation d'une variable
Plus de sujets relatifs à : [sh] export de variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR