启动时在Ubuntu中设置环境变量(通过脚本)

启动时在Ubuntu中设置环境变量(通过脚本),ubuntu,environment-variables,startup,Ubuntu,Environment Variables,Startup,我想在Ubuntu机器(10.04)上设置几个环境变量,但我想通过脚本来创建它们的值,就像: export THE_ENV_VAR=$(script_to_execute_and_use_stdout_from) 我尝试过在/etc/environment中设置,但这只会逐字复制rhs 我尝试在启动时在/etc/init.d/中执行一个脚本,但这似乎不起作用 想法?您需要将导出语句写入/etc/bash.bashrc文件,这是一个系统范围的.bashrc文件,将为所有系统用户设置环境:) 编辑

我想在Ubuntu机器(10.04)上设置几个环境变量,但我想通过脚本来创建它们的值,就像:

export THE_ENV_VAR=$(script_to_execute_and_use_stdout_from)
我尝试过在
/etc/environment
中设置,但这只会逐字复制rhs

我尝试在启动时在
/etc/init.d/
中执行一个脚本,但这似乎不起作用


想法?

您需要将导出语句写入
/etc/bash.bashrc
文件,这是一个系统范围的
.bashrc
文件,将为所有系统用户设置环境:)


编辑:一种方法是在引导期间填充缓存文件,并让用户脚本读取该缓存文件。

您考虑过这个问题吗?@Nano:没有,谢谢您的提示。没问题!我很高兴它有帮助。不管怎样,为什么不尝试将它设置为
.bashrc
?我会做一些类似于
的事情,比如将_ENV_VAR='script_导出到_execute_,并从_backticks'中使用stdout_
@Nano:这只会为bash会话设置它,我需要环境。为所有用户(特别是www数据)设置的变量是,但这是在启动时运行,还是在用户通过ssh连接时运行?变量的设置涉及到需要相当长时间才能执行的命令,这就是为什么我希望在启动时设置它们。这在用户通过ssh(corse的bash会话)连接时运行,谢谢,但这不是我需要的。有趣的是,似乎没有办法做到这一点。这里有一个肮脏的方法:添加脚本“script_to_execute_和_use_stdout_from”以引导并将结果输出到文件,然后,当用户连接时,它从该文件读取结果,而不是执行脚本,这应该会快得多。感谢m0ntassar,这就是我现在所做的,我有一种结果缓存,以便第一个连接的用户填充缓存。在随后的通话中,通话速度很快。我没想过在开机时运行它,但你是对的,它应该可以正常工作:)