当我看到$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