Как я могу установить переменные среды в зависимости от каталога - PullRequest
0 голосов
/ 07 мая 2010

Если у меня есть «export BLA =« hey there »» в .profile в моем домашнем каталоге, как я могу изменить это позже в других каталогах просто с помощью cd в другой каталог?Кроме того, есть ли способ просто установить новую переменную среды, когда я перехожу в каталог.

Моя первая попытка состояла в том, чтобы просто сделать другой файл .bashrc в каталоге, где я хочу внести изменения, но, очевидно, это оказалось меньшечем эффективно.

Я на OS X, кстати.

Ответы [ 2 ]

2 голосов
/ 07 мая 2010

Зачем вам это нужно? Просто любопытно.

Но вы можете переопределить cd и выполнить дополнительную обработку в вашем .bashrc:

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

После того, как вы добавите это, не забудьте запустить новую оболочку bash или получить ее через:

source ~/.bashrc
0 голосов
/ 07 мая 2010

Опираясь на ответ xyld, это позволяет вам делать страшные вещи .bashrc-in-any-directoryЯ уверен, что это действительно ужасная идея:

cd() {
    builtin cd "$@"
    if [[ -e `pwd`/.supplemental-bashrc ]]; then
        source `pwd`/.supplemental-bashrc
    fi
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...