2010-05-06 2 views
0

Si j'ai 'export BLA = "hey there"' dans .profile dans mon répertoire home, comment puis-je le changer plus tard dans d'autres répertoires juste par cd dans l'autre répertoire? En outre, existe-t-il un moyen de définir une nouvelle variable d'environnement lorsque je place un cd dans un répertoire.Comment puis-je définir les variables d'environnement en fonction du répertoire

Ma première tentative a été de simplement faire un autre fichier .bashrc dans le répertoire où je veux le changement mais apparemment cela s'est avéré moins efficace.

Je suis sous OS X btw.

Répondre

2

Pourquoi avez-vous besoin de faire cela? Juste curieux.

Mais vous pouvez remplacer cd et faire un peu de traitement supplémentaire dans votre .bashrc:

cd() { 
    builtin cd "[email protected]" 
    if [[ `pwd` == '/path/to/dir' ]]; then 
     export VAR=blah 
    ]] 
} 

Après avoir ajouté que, ne pas oublier de lancer un nouveau shell bash ou de la source via:

source ~/.bashrc 
+0

La raison pour laquelle je veux faire ceci est d'avoir des valeurs différentes pour les variables pour les différentes applications de rails. Les différentes applications peuvent utiliser les mêmes variables mais elles ont besoin de valeurs spécifiques. – kjs3

+0

@ kjs3 Veuillez marquer ma réponse par une coche si vous estimez qu'elle est «correcte» ou qu'elle vous a aidé à atteindre votre objectif. Merci! – dlamotte

0

S'appuyant sur la réponse de xyld, cela vous permet de faire le truc effrayant .bashrc-in-any-directory. Je suis assez sûr que c'est une idée vraiment terrible:

cd() { 
    builtin cd "[email protected]" 
    if [[ -e `pwd`/.supplemental-bashrc ]]; then 
     source `pwd`/.supplemental-bashrc 
    fi 
} 
+0

Hah, ouais, tu pourrais vraiment faire ça. Définitivement assez effrayant – dlamotte

Questions connexes