Qual é a maneira ideal de trocar entradas na variável de ambiente $ PATH?

Qual é a maneira ideal de trocar entradas na variável de ambiente $ PATH?

No Linux e/ou Mac OSX, qual é a melhor maneira de automatizar a movimentação de uma entrada na variável de ambiente $PATH para a frente do valor como este:

/foo/bar:/um/dois/três:/opt/local/bin:/home/user/bin

Torna-se

/home/usuário/bin:/foo/bar:/um/dois/três:/opt/local/bin

Atualmente estou usando o sed para fazer isso, mas gostaria de saber se existe uma solução mais simples.

Responder1

Acredito que este seja o mais simples:

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

Responder2

Rapidamente, você poderia escrever:

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

Se você tem algo parecido

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

então isso é mais robusto:

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

informação relacionada