日期:2014-05-16  浏览次数:20959 次

为什么source /etc/profile之后,环境变量没有被删除
我在/etc/profile文件最后加入了一行
export PATH=$PATH:/usr/local/arm/4.4.3/bin

然后,source /etc/profile,arm-linux-gcc生效。
然后我把/etc/profile中删掉
export PATH=$PATH:/usr/local/arm/4.4.3/bin

然后,再次source /etc/profile

然后,echo $PATH竟然还包括/usr/local/arm/4.4.3/bin
which arm-linux-gcc竟然也还能找到,为什么呢?

------解决方案--------------------
重启就删除了。原来的PATH不会变。
或者重新设置
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin    #不要加:$PATH,否则也不会删除。
------解决方案--------------------
soruce命令是在当前 shell 中执行一个文件中的命令;

第一次设置环境变量,由于export写在配置文件里,source时执行export命令,环境变量生效;
第二次取消环境变量的设置,由于配置文件里没有取消上一次设置的环境变量的命令,所以上次设置的变量依然有效;

我是这样理解的