mikemowgli Posté(e) le 21 juin 2007 Partager Posté(e) le 21 juin 2007 Vous avais-je déjà dit que j'étais mauvais en shell? :) alors voici: mb@pt-mb:/etc/profile.d$ echo $MC_COLOR_TABLEnormal=brown,default:marked=brown,default:selected=black,white:markselect=brown,default:directory=brown,default:link=brown,default:editnormal=brown,default mb@pt-mb:/etc/profile.d$ cat perso-mc_color_table.sh #!/bin/bash export MC_COLOR_TABLE="normal=brown,default:marked=brown,default:selected=black,white:markselect=brown,default:directory=blue,default:link=brown,default:editnormal=brown,default" mb@pt-mb:/etc/profile.d$ ./perso-mc_color_table.sh mb@pt-mb:/etc/profile.d$ echo $MC_COLOR_TABLE normal=brown,default:marked=brown,default:selected=black,white:markselect=brown,default:directory=brown,default:link=brown,default:editnormal=brown,default mb@pt-mb:/etc/profile.d$ J'avais autrefois modifié la variable MC_COLOR_TABLE pour que mc me donne les répertoire ET fichiers en brun. Maintenant je voudrais que les répertoires soit en bleu. Mais quand j'exécute mon script qui doit changer la couleur des répertoires du brun vers le bleu, l'export de la variable ne se fait pas, comme vous pouvez le constater. Pourquoi tant de haine? merci NB: si j'exécute la commande export MC_COLOR_TABLE="normal=brown,default:marked=brown,default:selected=black,white:markselect=brown,default:directory=blue,default:link=brown,default:editnormal=brown,default" à la main, cela marche. Il n'y a que lorsque j'exécute cette commande dnas le script que ça ne va pas. Mon script est mauvais? Lien vers le commentaire Partager sur d’autres sites More sharing options...
LukeSkyPator Posté(e) le 21 juin 2007 Partager Posté(e) le 21 juin 2007 En fait, l'export d'une variable d'environnement ne marche que pendant la durée de ton contexte console. En gros, quand tu lances ton script, tu l'exécutes dans un nouveau contexte, tu modifies ta variable d'environnement et tu quittes. Si tu mets echo MA_VARIABLE dans ton script, tu verras qu'elle a la bonne valeur. Mais du coup, quand ton script se termine, tu retournes à ta console avec les variables d'environnement de ta console. Si tu veux que la modif soit permanente, tu dois l'ajouter à ton bash_rc. De ce fait, quand tu lanceras une console, il chargera le bash_rc et modifiera ta variable Espérant t'avoir été utile, LSP, le manchot qui part déjeuner Lien vers le commentaire Partager sur d’autres sites More sharing options...
mikemowgli Posté(e) le 21 juin 2007 Auteur Partager Posté(e) le 21 juin 2007 d'accord mais alors à quoi sert le mot "export" devant la variable dans mon script? c'est pas justement pour disséminer cette variable (et sa valeur) en dehors que la console en cours? Lien vers le commentaire Partager sur d’autres sites More sharing options...
LukeSkyPator Posté(e) le 21 juin 2007 Partager Posté(e) le 21 juin 2007 export sert à fixer ta variable uniquement pour la session en cours. Si tu la fixes dans le bashrc, ce sera pour la session de console ouverte a posteriori (donc, toutes les sessions de consoles du coup ) LSP, le manchot de retour sur Liferay Lien vers le commentaire Partager sur d’autres sites More sharing options...
16ar Posté(e) le 21 juin 2007 Partager Posté(e) le 21 juin 2007 Plutot que de lancer ton script dans un nouveau shell comme tu le fais avec : ./perso-mc_color_table.sh Qui est equivalent a : sh perso-mc_color_table.sh utilise source, qui executera les commandes de ton script comme si ct dans ton shell et non pas dans un nouveau shell enfant au shell courant source perso-mc_color_table.sh Apres, si c'est pour du permanent, vaut mieux le mettre dans le .bashrc ou le profile. Seulement, c'est bizarre, il semble etre dans /etc/profile.d ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.