Linux中的动态环境变量?
在Linux中是否可能以某种方式拥有动态环境变量 我有一个Web服务器,其中站点遵循以下布局:Linux中的动态环境变量?,linux,bash,environment-variables,environment,Linux,Bash,Environment Variables,Environment,在Linux中是否可能以某种方式拥有动态环境变量 我有一个Web服务器,其中站点遵循以下布局: site/ qa/ production/ 我希望有一个环境变量(例如APPLICATION_ENV),当我在qa目录中时,它被设置为“qa”,当我在production目录中时,它被设置为“production”。原因是不同的站点可以使用许多不同的流程,所有这些流程都需要知道是QA还是生产环境。有些站点在Apache下使用PHP,有些使用Node.js,有些站点附带命令行工具、cr
site/
qa/
production/
我希望有一个环境变量(例如APPLICATION_ENV),当我在qa目录中时,它被设置为“qa”,当我在production目录中时,它被设置为“production”。原因是不同的站点可以使用许多不同的流程,所有这些流程都需要知道是QA还是生产环境。有些站点在Apache下使用PHP,有些使用Node.js,有些站点附带命令行工具、cron作业等。我希望有一个权威来源,说明它是QA还是生产环境。基于的覆盖:
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
或其子目录中。您可以在/bin
或/usr/bin
目录中创建一个可执行脚本,并从站点脚本执行。我不明白你为什么要破解cd
/usr/bin/哪个版本:
#!/bin/bash
if [[ "$PWD" =~ /(qa|production)(/|$) ]]
then
echo "${BASH_REMATCH[1]}"
else
echo "unknown"
fi
网站:
$env=system(“哪个版本”)
这是用于shell脚本的吗?您可以只使用$(basename$(pwd))
而不仅仅用于shell脚本。如果只是这样的话,那就很容易了:-)有很多网站,有很多不同的流程、脚本等等。这就是为什么我想要一个应用程序环境的授权源(如果可能的话,我更喜欢使用环境变量,因为所有Linux进程都理解环境变量)谢谢,这听起来很有用。我试试看。