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

1

No Linux e / ou no 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 da seguinte forma:

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

Torna-se

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

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

    
por Jonathan Neufeld 12.08.2014 / 19:13

2 respostas

1

Eu acredito que isso é o mais simples:

awk 'BEGIN{FS=OFS=":"}{print $4,$1,$2,$3}' <<< $PATH
    
por 13.08.2014 / 02:30
0

Rapidamente, você pode escrever:

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

Se você tem algo como

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

então isso é mais robusto:

tmp=":$PATH:"
tmp=$dir${tmp//:$dir:/:}
PATH=${tmp%:}
    
por 12.08.2014 / 19:58