В Linux и/или Mac OSX какой лучший способ автоматизировать перемещение записи в переменной среды $PATH в начало значения, например, так:
/foo/bar:/one/two/three:/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%:}