"export" 命令行 - 在 bash_profile 中声明的环境变量在后续会话中可用吗?
Posted
技术标签:
【中文标题】"export" 命令行 - 在 bash_profile 中声明的环境变量在后续会话中可用吗?【英文标题】:"export" Command Line - are environment variables declared in bash_profile available in subsequent sessions? 【发布时间】:2020-12-06 22:51:12 【问题描述】:我知道 export USER="name" 将使我当前所在的所有子会话都可以使用该变量。但是如果我重新启动计算机,这些环境变量会返回到它们的默认值而不是我的默认值吗?分配给他们?
【问题讨论】:
【参考方案1】:在 Linux 上,环境变量不会持久化,它们保存在每个进程内存中。当机器重新启动时,所有这些进程都将终止,并且它们的环境变量将丢失。
获取“持久”环境变量的常用方法是将它们的分配注入机器重新启动或用户会话启动时加载的文件之一:/etc/profile(用于全局设置),或用户特定文件之一:~/.bash_profile、~/.bash_login 或 ~/.profile。
如果变量仅用于一个会话,则另一种策略是将变量放入“.sh”文件,并在需要变量时“获取”“.sh”文件。
【讨论】:
对不起,我对这个编码很陌生。我在 MacOS 上而不是 linux 上,这是一个问题吗?我想我知道所有这些变量都会丢失,除非我将它们放入 ~/.bash_profile。但是如果我要使用其他策略,我肯定还需要将 .sh 文件放入 bash_profile 吗?非常感谢! @theflow23 Linux 和 MacOS 没有本质区别。将命令放入 ~/.bash_profile 将在您登录帐户时重置环境。【参考方案2】:如果它在您的 .bash_profile 中,那么是的,它应该在重新启动后仍然存在。当然,只要您使用 bash。
【讨论】:
以上是关于"export" 命令行 - 在 bash_profile 中声明的环境变量在后续会话中可用吗?的主要内容,如果未能解决你的问题,请参考以下文章