如何修剪 PATH 环境变量

如何修剪 PATH 环境变量

当我看到$PATH它时,它似乎在跟随。

/bin:/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin

/bin在路径中重复,我的问题是如何删除路径中的重复项?

有什么好的方法可以达到这个目的吗?

谢谢

答案1

有点过于复杂,但它应该能够与任何 POSIX shell 一起使用,并且还可以处理空路径条目:

trim_path(){
        PATH=${1%%:*}
        while :; do
                case $1 in
                *:*) set -- "${1#*:}" ;;
                *) break ;;
                esac
                case :$PATH: in
                *":${1%%:*}:"*) ;;
                *) PATH=$PATH:${1%%:*} ;;
                esac
        done
}

trim_path /bin:/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
echo $PATH
/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin

相关内容