Сорсинговые переменные как локальные в bash - PullRequest
3 голосов
/ 26 декабря 2011

У меня есть bash-файл, в котором определено несколько переменных:

VAR1="value1"
VAR2="value2"
# ...

Мне нужно импортировать этих переменных в ~/.bashrc, чтобы настроить PS1, PATH и так далее, но не хочу, чтобы к импортированным переменным можно было обращаться за пределами ~/.bashrc.

Чтобы пояснить пример, я хотел бы сделать что-то вроде этого:

function setPATH
{
    local . ~/bashvars.sh # this isn't legal, of course...
    PATH="$PATH:$VAR1"    # $VAR1 is defined in ~/bashvars.sh
    unset -f setPATH
}
setPATH

Как я могу это сделать?

1 Ответ

5 голосов
/ 26 декабря 2011

использовать подоболочку:

getPATH() (
    . ~/bashvars.sh
    echo "$PATH:$VAR1"
)
PATH=$(getPATH)
...