是否有可能以某种方式在Linux中拥有动态环境变量?
我有一个网站服务器,网站遵循这种布局:
site/
qa/
production/
我想要一个环境变量(例如APPLICATION_ENV)设置为" qa"当我在qa目录中,以及"生产"当我在生产目录中时。这样做的原因是各个站点可以使用许多不同的流程,如果它们是QA或生产环境,则需要知道这些流程。有些站点在Apache下使用PHP,有些站点使用Node.js,有些站点使用命令行工具,cron作业等等。我想有一个关于它是QA还是生产环境的授权来源。
答案 0 :(得分: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
}
只需将此功能放入.bashrc
或其他一些源环境文件中,然后尝试cd
进入qa
,production
或其子目录。
答案 1 :(得分:1)
您可以在/bin
或/usr/bin
目录之一中创建可执行脚本,并从站点脚本执行该脚本。我不明白为什么你需要破解cd
。
的/ usr /斌/哪个版本:
#!/bin/bash
if [[ "$PWD" =~ /(qa|production)(/|$) ]]
then
echo "${BASH_REMATCH[1]}"
else
echo "unknown"
fi
的网站:
$env = system("which-version")