Chr*_*oms 10 shell bash bashrc path
我经常修改我的 .bashrc 然后获取它。但是,当export PATH="~/bin:~/perl5/bin:$PATH"我的文件中有类似内容
时,PATH每次获取文件时环境变量都会增加。
例如,第一次获取 .bashrc 时,PATH变量由.bashrc组成~/bin:~/perl5/bin:/usr/bin:/bin。
第二次它由~/bin:~/perl5/bin:~/bin:~/perl5/bin:/usr/bin:/bin.
第三次它由~/bin:~/perl5/bin:~/bin:~/perl5/bin:~/bin:~/perl5/bin:/usr/bin:/bin.
有没有一种简单的方法可以让它只添加任何不在 PATH 中的东西?
Sam*_*cke 12
使用大多数发行版中可用的 pathmunge() 函数/etc/profile:
pathmunge () {
if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
fi
}
Run Code Online (Sandbox Code Playgroud)
编辑:对于zsh用户,typeset -U <variable_name>将删除重复的路径条目。