Was ist die ideale Möglichkeit, Einträge in der Umgebungsvariable $PATH auszutauschen?

Was ist die ideale Möglichkeit, Einträge in der Umgebungsvariable $PATH auszutauschen?

Was ist unter Linux und/oder Mac OSX die beste Möglichkeit, das Verschieben eines Eintrags in der Umgebungsvariablen $PATH an den Anfang des Werts wie folgt zu automatisieren:

/foo/bar:/eins/zwei/drei:/opt/local/bin:/home/user/bin

Wird

/home/Benutzer/bin:/foo/bar:/eins/zwei/drei:/opt/local/bin

Derzeit verwende ich sed, um dies zu erreichen, aber ich würde gerne wissen, ob es eine einfachere Lösung gibt.

Antwort1

Ich glaube, das ist am einfachsten:

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

Antwort2

Kurz gesagt, Sie könnten schreiben:

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

Wenn Sie so etwas haben wie

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

dann ist das robuster:

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

verwandte Informationen