Linux中的动态环境变量?

San*_*hal 2 linux bash environment environment-variables

是否有可能在Linux中拥有动态环境变量?

我有一个网站服务器,网站遵循这种布局:

site/
    qa/
    production/
Run Code Online (Sandbox Code Playgroud)

我想有一个环境变量(例如APPLICATION_ENV),当我在qa目录时设置为"qa",当我在生产目录时设置为"production".原因是各个站点可以使用许多不同的进程,如果它们是QA或生产环境,则需要知道这些进程.有些站点在Apache下使用PHP,有些站点使用Node.js,有些站点使用命令行工具,cron作业等等.我想有一个关于它是QA还是生产环境的授权来源.

l0b*_*0b0 7

基于rvm覆盖:

cd () { 
    if builtin cd "$@"
    then
        if [[ "$PWD" =~ /(qa|production)(/|$) ]]
        then
            export APPLICATION_ENV="${BASH_REMATCH[1]}"
        else
            unset APPLICATION_ENV
        fi
        return 0
    else
        return $?
    fi
}
Run Code Online (Sandbox Code Playgroud)

只要把这个功能.bashrc或者一些其他来源的环境文件,并试图cd进入qa,production或它们的一个子目录中.