Mittwoch, 11. Februar 2009

PATH Variable setzen mit addpath

Manchmal möchte man als Unix User gerne seine PATH Variable um neue Eintraege erweitern. Ich hatte immer mal wieder das "Problem", daß Einträge dabei doppelt auftauchten, da sie schon im Standard enthalten waren.

Also habe ich mir vor einiger Zeit eine kleine Funktion gebastelt, die nur solche Werte aufnimmt, die nicht bereits enthalten sind:


addpath () {
left=''
P=$1
shift
while [ -n "$1" ]
do case $1 in
-l) left=1 ;;
-r) left='' ;;
*) case :$P: in
*:$1:*) ;;
*) if [ $left ] ; then P=$1:$P ; else P=$P:$1 ; fi ;;
esac ;;
esac
shift
done
echo $P
}


"addpath" wird einfach in die .profile oder .bashrc (je nach Vorliebe) einkopiert.


Der Aufruf erfolgt in dieser Form:

PATH=`addpath $PATH -l /usr/local/perl/perl-5.8.8/bin -r ~/bin`


Dies fügt "/usr/local/perl/perl-5.8.8/bin" vor dem aktuellen Pfad ein (links) und "~/bin" dahinter (rechts).

Ohne -l und -r wird nur rechts angefügt. -l und -r beziehen sich auf alle, dahinter stehenden Pfade.

addpath kann fuer alle Pfadvariablen verwendet werden, die wie PATH aufgebaut sind, also z.B. auch für MANPATH, PERL5LIB etc. pp.

1 Kommentar:

  1. Wie ich sehe wendet dich dein Blog auch mal sinnvollen Sachen zu, hätt ich dir gar nicht zugetraut :D

    AntwortenLöschen