设置一个变量,其值可以在其他控制台终端会话中使用

设置一个变量,其值可以在其他控制台终端会话中使用

我想设置一个变量,当实例化另一个终端会话时,它的值可以保留。我可以使用什么?

答案1

.bashrc您可以在位于主目录中的文件中定义它,或者为每个用户定义它/etc/bash.bashrc

这也取决于您的登录方式。如果是远程登录,并且您看不到变量值,请使用您的.profile文件。

其中有一节介绍环境变量以及它们在您的终端会话期间如何加载(从哪个文件加载)man bash

答案2

要设置一个变量,其值在启动另一个终端会话时可用,您需要将其包含在~/.bashrc。然后,任何其他终端会话开始该变量已设置将使它可用。这可以通过手动编辑~/.bashrc或修改该文件的脚本来实现。最简单的形式是,类似echo export MYVAR=value >> ~/.bashrcalready 的命令使该变量可用于未来的交互式 shell。

无法设置变量并自动使其在另一个当前正在运行的实例中可用。

这是由环境变量系统的工作方式决定的。您不能在一个 shell 实例中设置变量,然后该变量在另一个实例中可用。这是由于所谓的“继承”。shell 会继承启动它的 shell 的环境,然后只继承已创建的变量出口. 刚刚设置的变量在该子 shell 中不可用。

因此,在您的 中导出的环境变量~/.profile将在您登录时设置,并对您启动的任何 shell 或您启动的进程生效。您在 中设置或导出的环境变量~/.bashrc将在您打开交互式 bash shell 时立即可用。

相关内容