我有一个.sh
文件,在我的shell source my_env.sh
中本地设置了一些环境变量。
#!/bin/sh
echo "Setting up local environment variables"
export MY_URL="http://domain.com"
echo "Done"
这仅设置该会话的变量。这意味着我在不同会话下运行的Python Celery和Supervisor应用程序无法访问它们。我知道我可以在用户下运行它们,但我想知道在Ubuntu上是否使用上面相同的shell脚本,如果我可以设置变量,那么无论用户或会话如何,它们都可以全局访问所有应用程序?
答案 0 :(得分:2)
将变量导出到" / etc / profile"。
注意:这将使其适用于任何用户的每个shell会话。如果您希望为特定用户的每个会话设置此变量,请在该用户"〜/ .profile"中设置它。
答案 1 :(得分:1)
根据Ubuntu env variables doc,最好的方法是
适用于整个系统(而不仅仅是特定用户)的环境变量设置的合适文件是/ etc / environment
假设您不介意为整台机器设置它们。
答案 2 :(得分:0)
如果您使用的是bashrc或zshrc,则可以获取shell文件,该文件在会话中设置环境变量或精确加载每个会话中的所有环境变量。
source location/shell-script-sets-env.sh
zshrc和bashrc在$ HOME目录中可用。或〜/ .zshrc和〜/ .bashrc。可以通过
查看当前的shellecho $SHELL
请查看setting env permanently,将其添加到个人资料中。