Hallo,
ich will gerade meine PATH-Variable erweitern, und stosse auf folgendes Problem: fredy:~ # echo $[PATH] bash: /sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/lib/java/bin:/var/lib/dosemu:/usr/games/bin: /usr/games:/opt/gnome/bin:/opt/kde/bin: syntax error: operand expected (error token is "/sbin:/usr/sbin:/usr/local/sbin: /root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/lib/java/bin: /var/lib/dosemu:/usr/games/bin:/usr/games:/opt/gnome/bin:/opt/kde/bin")
Der gleiche Fehler tritt in der Form auch bei anderen Umgebungsvariablen auf wie bei INFOPATH oder MANPATH. Ich denke, die shell stört sich an dem ':' am Ende des PATH-String. In meiner /etc/profile steht aber:
MACHINE=`test -x /bin/uname && /bin/uname --machine` PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin for DIR in ~/bin/$MACHINE ~/bin ; do test -d $DIR && PATH=$DIR:$PATH done #test "$UID" = 0 && PATH=/sbin:/usr/sbin:$PATH test "$UID" = 0 && PATH=/sbin:/usr/sbin:/usr/local/sbin:$PATH for DIR in /usr/lib/java/bin \ /var/lib/dosemu \ /usr/games/bin \ /usr/games \ /opt/bin \ /opt/gnome/bin \ /opt/kde/bin \ /usr/openwin/bin ; do test -d $DIR && PATH=$PATH:$DIR done test "$UID" = 0 || PATH="$PATH:." export PATH
Ich schätzte es liegt an der vorletzten Zeile. Kann mir jemand helfen? Achso mein eigentliches Problem war das mein folgendes kleines Script nicht funktioniert:
echo "setting up ENV variables for the aRts static binary" export KDEDIR=/usr/local/arts export PATH=/usr/local/arts/bin:$PATH
Der PATH ist danach einfach nicht um dieses Verzeichniss erweitert.
Danke für eure Gedult eines sich noch nicht in der Shell und Script auskennenden Linux-Users :)
Friedrich
On Fri Feb 11, 2000 at 23:51:49 +0100, Friedrich Hagedorn wrote:
ich will gerade meine PATH-Variable erweitern, und stosse auf folgendes Problem:
Deine Uhr geht _deutlich_ falsch.
fredy:~ # echo $[PATH]
echo $PATH
dito fuer alle anderen Variablen.
Achso mein eigentliches Problem war das mein folgendes kleines Script nicht funktioniert:
echo "setting up ENV variables for the aRts static binary" export KDEDIR=/usr/local/arts export PATH=/usr/local/arts/bin:$PATH
Der PATH ist danach einfach nicht um dieses Verzeichniss erweitert.
Richtig so.
Nicht "./script" sondern ". script" aufrufen.
Adam
On Friday 11 February 2000 23:51, Friedrich Hagedorn wrote:
Hallo,
ich will gerade meine PATH-Variable erweitern, und stosse auf folgendes Problem: fredy:~ # echo $[PATH]
$PATH ist kein mathematischer Ausdruck!
probier mal das: x='3*3' echo $x echo ${x}+1 echo $[x+1]
dann sollte klar sein, was das bewirkt...
Konrad
On Fri, Feb 11, 2000 at 11:51:49PM +0100, Friedrich Hagedorn wrote:
Hallo,
ich will gerade meine PATH-Variable erweitern, und stosse auf folgendes Problem: fredy:~ # echo $[PATH]
Wenn's in [] steht, dann wird das zwischen den Klammern als math. Expression betrachtet: echo $[4 + 9] (oder echo $((4 + 9)))
Das, was Du willst, ist sicher:
PATH="$PATH:/noch/ein/weiter/path/zum/ziel"
Achso mein eigentliches Problem war das mein folgendes kleines Script nicht funktioniert:
echo "setting up ENV variables for the aRts static binary" export KDEDIR=/usr/local/arts export PATH=/usr/local/arts/bin:$PATH
Der PATH ist danach einfach nicht um dieses Verzeichniss erweitert.
Ja, wenn Du dieses Script aufrufst, dann setzt es innerhalb des Scriptes die Variable (kannst ja mal _im_ Script ein `echo $PATH' einfügen -- Du wirst es sehen), aber wenn der Script zu Ende ist, dann ist auch die den Script ausführende Shell zu Ende und alle Änderungen an dem Umgebungsvariablen sind damit auch wieder weg.
Ein Kind kann niemals über die Geschicke seiner Eltern bestimmen. (Unix Prozesssicherheit.) Und Dein zweiter Script ist ein Kind der Login-Shell.
Wenn Du die Zeilen in Deine ~/.bash_profile (oder ~/.bash_login oder ~/.profile) reinschreibst und Dich neu anmeldest, dann wirken die Änderungen auf die Login-Shell.
Wenn Du das immernoch als Script aufrufen willst, dann solltest Du:
source SCRIPT
benutzten, oder an Stelle von `source' einfach `.'. Das führt dann alles in der laufenden Shell aus.
oder: alias aRts='source ~/bin/aRts.env'
You got the idea.
Best regards from Dresden/Germany Viele Gruesse aus Dresden Heiko Schlittermann
lug-dd@mailman.schlittermann.de