![当用户改变时如何改变环境变量?](https://linux22.com/image/1523460/%E5%BD%93%E7%94%A8%E6%88%B7%E6%94%B9%E5%8F%98%E6%97%B6%E5%A6%82%E4%BD%95%E6%94%B9%E5%8F%98%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%EF%BC%9F.png)
我在 USB 驱动器上有一个带有 bash shell 的便携式终端,每次更换计算机时我都想加载不同的环境变量,其他机器上的用户不同。如何为此设置 .bashrc 文件?
答案1
我不确定我是否完全理解你想做什么。
我认为您基本上想要的是保留一些可以在需要时/需要的地方获取的环境文件。
假设你想在通过 ssh 连接的远程机器上设置环境,那么你的 .bashrc 可以包含类似
source ~/path/to/file.env
或者
. ~/path/to/file.env
请记住,.bashrc 可能不是您需要编辑的文件。从我的系统的 bashrc 来看:
# There are 3 different types of shells in bash: the login shell, normal shell
# and interactive shell. Login shells read ~/.profile and interactive shells
# read ~/.bashrc; in our setup, /etc/profile sources ~/.bashrc - thus all
# settings made here will also take effect in a login shell.
如果您在本地切换用户,这种方法也有效。
如果您想要的是修改自己的环境(不确定为什么要这样做,但这里不作评判),那么最简单的方法就是在需要时手动获取所需的环境文件。
这听起来有点像您在 Windows 上,在这种情况下,您可能需要确保您的本地 shell 的工作方式与 bash 类似,并允许获取东西。
另外,请记住您可以使用env
命令来运行,如下所示:
env -i bash -c 'source .foo.env && do_something.sh'