PATH 환경 변수를 자르는 방법

PATH 환경 변수를 자르는 방법

제가 볼 땐 $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

관련 정보