我想设置一个变量,当实例化另一个终端会话时,它的值可以保留。我可以使用什么?
答案1
.bashrc
您可以在位于主目录中的文件中定义它,或者为每个用户定义它/etc/bash.bashrc
。
这也取决于您的登录方式。如果是远程登录,并且您看不到变量值,请使用您的.profile
文件。
其中有一节介绍环境变量以及它们在您的终端会话期间如何加载(从哪个文件加载)man bash
。
答案2
要设置一个变量,其值在启动另一个终端会话时可用,您需要将其包含在~/.bashrc
。然后,任何其他终端会话开始后该变量已设置将使它可用。这可以通过手动编辑~/.bashrc
或修改该文件的脚本来实现。最简单的形式是,类似echo export MYVAR=value >> ~/.bashrc
already 的命令使该变量可用于未来的交互式 shell。
无法设置变量并自动使其在另一个当前正在运行的实例中可用。
这是由环境变量系统的工作方式决定的。您不能在一个 shell 实例中设置变量,然后该变量在另一个实例中可用。这是由于所谓的“继承”。shell 会继承启动它的 shell 的环境,然后只继承已创建的变量出口. 刚刚设置的变量在该子 shell 中不可用。
因此,在您的 中导出的环境变量~/.profile
将在您登录时设置,并对您启动的任何 shell 或您启动的进程生效。您在 中设置或导出的环境变量~/.bashrc
将在您打开交互式 bash shell 时立即可用。