私が見たときは$PATH
ついているようです。
/bin:/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
/bin
パスに重複があります。私の質問は、パスから重複を削除する方法です。
これを達成するための良い方法はありますか?
ありがとう
答え1
少し複雑すぎますが、すべてのPOSIXシェルで動作し、空のパスエントリも処理する必要があります。
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