环境变量未正确重新加载
Environmental variables are not reloading properly
我真不知道怎么会这样。因此,假设我将以下行添加到我的 ~/.bashrc
文件中:export asd='asd'
如果我现在保存并重新加载终端:exec bash
并检查该值,它存在:
$ echo $asd
asd
一切都很好,但当我删除这个值时,当我删除行 export asd='asd'
并创建一个新的 bash 实例时,该值仍然存在。
我可以修改值就好了..
全局变量传递给子进程。
[~] export asd='Hello World'
[~] sh
@sh-5.1$ echo $asd
Hello World
如果您从 bashrc 中删除该命令并不重要,只要它已在您的环境中设置,而是您需要先删除该全局变量。您可以使用活动 bash-session 的 env
或 printenv
列出所有活动的全局变量。
[~] export asd='Hello World'
[~] env | grep asd
asd=Hello World
[~] unset asd
[~] sh
@sh-5.1$ echo $asd
或者,您可以启动一个新的 shell,而无需从之前的 shell 调用它。这样,它只会读取您的配置文件和 bashrc,而不会传输您正在使用的 (sub)shell 的任何 created/active 环境变量。
我真不知道怎么会这样。因此,假设我将以下行添加到我的 ~/.bashrc
文件中:export asd='asd'
如果我现在保存并重新加载终端:exec bash
并检查该值,它存在:
$ echo $asd
asd
一切都很好,但当我删除这个值时,当我删除行 export asd='asd'
并创建一个新的 bash 实例时,该值仍然存在。
我可以修改值就好了..
全局变量传递给子进程。
[~] export asd='Hello World'
[~] sh
@sh-5.1$ echo $asd
Hello World
如果您从 bashrc 中删除该命令并不重要,只要它已在您的环境中设置,而是您需要先删除该全局变量。您可以使用活动 bash-session 的 env
或 printenv
列出所有活动的全局变量。
[~] export asd='Hello World'
[~] env | grep asd
asd=Hello World
[~] unset asd
[~] sh
@sh-5.1$ echo $asd
或者,您可以启动一个新的 shell,而无需从之前的 shell 调用它。这样,它只会读取您的配置文件和 bashrc,而不会传输您正在使用的 (sub)shell 的任何 created/active 环境变量。