在bash中将变量作为本地采购

peo*_*oro 3 variables bash import local

我有一个bash文件,其中定义了许多变量:

VAR1="value1"
VAR2="value2"
# ...
Run Code Online (Sandbox Code Playgroud)

我需要导入这些变量~/.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
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Sam*_*us_ 5

使用子shell:

getPATH() (
    . ~/bashvars.sh
    echo "$PATH:$VAR1"
)
PATH=$(getPATH)
Run Code Online (Sandbox Code Playgroud)