$PATH 환경 변수의 항목을 교환하는 이상적인 방법은 무엇입니까?

$PATH 환경 변수의 항목을 교환하는 이상적인 방법은 무엇입니까?

Linux 및/또는 Mac OSX에서 $PATH 환경 변수의 항목을 다음과 같이 값 앞으로 자동으로 이동하는 가장 좋은 방법은 무엇입니까?

/foo/bar:/1/2/3:/opt/local/bin:/home/user/bin

된다

/home/user/bin:/foo/bar:/one/two/ three:/opt/local/bin

현재 저는 이 작업을 수행하기 위해 sed를 사용하고 있지만 더 간단한 해결책이 있는지 알고 싶습니다.

답변1

나는 이것이 가장 간단하다고 믿습니다.

awk 'BEGIN{FS=OFS=":"}{print $4,$1,$2,$3}' <<< $PATH

답변2

빠르게 다음과 같이 작성할 수 있습니다.

dir=/home/user/bin
PATH=$dir:${PATH//:$dir/}

당신이 같은 것을 가지고 있다면

PATH=/first:/second:/home/user/bin/subdir:/home/user/bin

그러면 이것이 더 강력해집니다.

tmp=":$PATH:"
tmp=$dir${tmp//:$dir:/:}
PATH=${tmp%:}

관련 정보