没具体了解过环境变量文件(.bashrc)的执行机制,只知道添加环境变量,注释即删除。
今天将某个PATH的环境变量注释掉,执行了【source ~/.bashrc】后,发现注释掉的PATH中包含的命令依然奏效,用【echo $PATH】发现一堆旧命令,才知道自己一直在增加环境变量,注释掉的并不会删除。
原因:
.bashrc文件的第一个PATH赋值不规范,用了$PATH,如下:
export PATH="$PATH:/usr/bin:/bin"
该命令的意思为在当前的PATH变量集合($PATH)中增加【/usr/bin】和【/bin】路径(就好比+=),所以每一次的【source ~/.bashrc】命令都会增加一次路径,导致冗余的路径炒鸡多,且注释不生效。
.bashrc文件中第一个PATH的赋值应该是:
export PATH="/usr/bin:/bin"
这样,第一次给PATH赋值就等于重写,才不会出现上述情况。
为自己的弱智鞠个躬