• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] /etc/profile.local : $PATH

OsunSeyi

Hacker
Hallo !
habe nach: Beitrag in der hiesigen Datei /etc/profile.local folgendes eingetragen:
Code:
PATH=$PATH:/home/tom/bin1
export PATH;
Nach Neustart wird bin1 aber trotzdem nicht erkannt.
Habe hier SuSE 9.3 , der zitierte Beitrag bezieht sich auf 10.2.
Hat sich da was geändert ?
Gruß, Tom
 
Da sollte sich nichts geändert haben.

Wird die /etc/profile.local in der /etc/profile gesourced?
Code:
grep "/etc/profile.local" /etc/profile
Welche Shell benutzt du?

Wie testest du das ganze?
In einer Login-Shell (Konsole)? - In einer Interaktiven Shell (X-Terminal)?
 
OP
OsunSeyi

OsunSeyi

Hacker
Hi b3ll3roph0n !
Code:
grep "/etc/profile.local" /etc/profile :
...will be lost during system upgrades. Instead use /etc/profile.local
test -s /etc/profile.local && . /etc/profile.local
...habe es am gnome-Terminal getestet
Gruß, Tom
 
OP
OsunSeyi

OsunSeyi

Hacker
Sorry,
Gückmeldung kommt 'etwas' spät...
Weiß nicht, ob ich was falsch gemacht habe. Aber ohne was zu ändern werden in /etc/profile.local gemachte 'export PATH' - Einträge korrekt erkannt.
Code:
PATH=$PATH:/home/tom/bin/*
export PATH;
scheint so aber nicht zu funktionieren, was die einfachste Lösung wäre.
Gruß, Tom
 
Code:
PATH=$PATH:/home/tom/bin/*
Ne, weil ein Wildcard-String in Strings getrennt durch Leerzeichen expandiert, und nicht durch ":". Wenn du alle Verzeichnisse in bin in den PATH aufnehmen willst, hilft wohl nur eine for-Schleife...
Code:
for i in ~/bin/*; do
        PATH="$PATH:$i";
done;
export PATH;
 
OP
OsunSeyi

OsunSeyi

Hacker
Hi Jengelh
Hab´ das so in /etc/profile.local eingetragen.
Jetzt sind aber alle in meinem Bin-Verzeichnis vorhandenen Unterverzeichnisse und Dateien gleich 3x im Bin-Path enthalten.
echo $PATH ergibt (Doppelpunkte sind durch NL ersetzt)
Code:
/home/tom/bin 
/usr/local/bin 
/usr/bin 
/usr/X11R6/bin 
/bin 
/usr/games 
/opt/gnome/bin 
/opt/kde3/bin 
/usr/lib/jvm/jre/bin 
/home/tom/bin/A 
/home/tom/bin/ASCII 
/home/tom/bin/BIN_ABF 
/home/tom/bin/BIN_APPL 
/home/tom/bin/BIN_CP 
/home/tom/bin/BIN_KINT 
/home/tom/bin/BIN_MAIL 
/home/tom/bin/BIN_NOTES 
/home/tom/bin/BIN_PANEL 
/home/tom/bin/BIN_PRINT 
/home/tom/bin/BIN_SED 
/home/tom/bin/BIN_START 
/home/tom/bin/CONNECT 
/home/tom/bin/CRON 
/home/tom/bin/HTML 
/home/tom/bin/TREE 
/home/tom/bin/XSEL 
/home/tom/bin/A 
/home/tom/bin/ASCII 
/home/tom/bin/BIN_ABF 
/home/tom/bin/BIN_APPL 
/home/tom/bin/BIN_CP 
/home/tom/bin/BIN_KINT 
/home/tom/bin/BIN_MAIL 
/home/tom/bin/BIN_NOTES 
/home/tom/bin/BIN_PANEL 
/home/tom/bin/BIN_PRINT 
/home/tom/bin/BIN_SED 
/home/tom/bin/BIN_START 
/home/tom/bin/CONNECT 
/home/tom/bin/CRON 
/home/tom/bin/HTML 
/home/tom/bin/TREE 
/home/tom/bin/XSEL 
/home/tom/bin/A 
/home/tom/bin/ASCII 
/home/tom/bin/BIN_ABF 
/home/tom/bin/BIN_APPL 
/home/tom/bin/BIN_CP 
/home/tom/bin/BIN_KINT 
/home/tom/bin/BIN_MAIL 
/home/tom/bin/BIN_NOTES 
/home/tom/bin/BIN_PANEL 
/home/tom/bin/BIN_PRINT 
/home/tom/bin/BIN_SED 
/home/tom/bin/BIN_START 
/home/tom/bin/CONNECT 
/home/tom/bin/CRON 
/home/tom/bin/HTML 
/home/tom/bin/TREE 
/home/tom/bin/XSEL
...entschuldige die nervige Länge...
Gruß, Tom
 
OsunSeyi schrieb:
Hab´ das so in /etc/profile.local eingetragen.
Jetzt sind aber alle in meinem Bin-Verzeichnis vorhandenen Unterverzeichnisse und Dateien gleich 3x im Bin-Path enthalten.
Die Schleife allein füllt PATH 3x? Hm, kann ich mir nicht vorstellen.
Aber wenn du auch noch Dateien in ~/bin hast, dann solltest du ja auch nur Verzeichnisse ins $PATH übernehmen, ergo:
Code:
echo "Vorher: >>$PATH<<";
for i in ~/bin/*; do
    if [ ! -d "$i" ]; then
        continue;
    fi;
    PATH="$PATH:$i";
fi;
echo "Nachher: >>$PATH<<";
Schau mal, was dabei rauskommt.
 
OP
OsunSeyi

OsunSeyi

Hacker
Moin Jengelh !
An dem Script scheint was nicht zu stimmen:
Code:
tom@TOURNEE:
~> NEU
Vorher:
 >>/home/tom/bin:
/usr/local/bin:
/usr/bin:
/usr/X11R6/bin:
/bin:
/usr/games:
/opt/gnome/bin:
/opt/kde3/bin:
/usr/lib/jvm/jre/bin:
/home/tom/DAT/D/BIN/A:

#...3x alles

/home/tom/DAT/D/BIN/HTML:
/home/tom/DAT/D/BIN/TREE:
/home/tom/DAT/D/BIN/XSEL<<
/home/tom/DAT/D/BIN/BIN_SED/NEU:
 line 7:
 syntax error near unexpected token `fi'/home/tom/DAT/D/BIN/BIN_SED/NEU:
 line 7:
 `fi;'
:
vermutlich ein Tippfehler, bin aber nicht bewandert genug, sorry
Gruß, Tom
PS:
Line 7 müsste sein:
6 PATH="$PATH:$i";
7 fi;
8 echo "Nachher: >>$PATH<<";
 
A

Anonymous

Gast
Ohne das Script jetzt genauer zu testen- Zeile 7 müsste natürlich done sein nicht fi

robi
 
OP
OsunSeyi

OsunSeyi

Hacker
OK. Also folgendes in /etc/profile.local eingetragen:
Code:
for i in ~/bin/*; do
    if [ ! -d "$i" ]; then
        continue;
    fi;
    PATH="$PATH:$i";
done; 
export PATH;
...hat aber nichts am Ergebnis geändert !
Gruß,tom
 

regexer

Advanced Hacker
OsunSeyi schrieb:
OK. Also folgendes in /etc/profile.local eingetragen:
Ebenso wie jengelh glaube ich auch nicht, dass die 3malige Wiederholung von der Schleife herrührt. Um das ganze zu überprüfen schlage ich vor, dein profile mit "Vorher/Nachher" zu ergänzen. In etwa so:
Code:
echo "$(date '+%F %T) Vorher: >>$PATH<<" >> ~/PATH.debug
for i in ~/bin/*; do
    if [ ! -d "$i" ]; then
        continue;
    fi;
    PATH="$PATH:$i";
done; 
export PATH;
echo "$(date '+%F %T) Nachher: >>$PATH<<" >> ~/PATH.debug
Und dann poste uns mal, was nach der Benutzeranmeldung in der Datei ~/PATH.debug steht...
 
OP
OsunSeyi

OsunSeyi

Hacker
Hi !
irgendwas ist da janz seltsam...
im ersten Durchlauf bekam ich:
Code:
 Nachher: >>/home/tom/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/jvm/jre/bin<<
wollte das aber nicht glauben (wo ist 'vorher' geblieben ?)
Also nochmal das ganze, diesmal ergab's:
Code:
 Nachher: >>/home/tom/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/jvm/jre/bin<<
 Nachher: >>/home/tom/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/jvm/jre/bin<<
 Nachher: >>/home/tom/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/jvm/jre/bin<<
Kein Fehler gemacht, Script überprüft, PATH.debug neu angelegt, kann also nicht sein.
Oder es ist ein Fehler im Code ?
:?
mfG,tom
SORRY, es fehlt ein $....
bitte, ich muß jetzt was anderes machen, morgen wieder !
 

regexer

Advanced Hacker
OsunSeyi schrieb:
Kein Fehler gemacht, Script überprüft, PATH.debug neu angelegt, kann also nicht sein.
Ich habe eigentlich das date eingebaut, damit man sieht, von wann der Eintrag ist. Nach deinen Beschreibungen müsste ja da 3x die gleiche Urzeit drin stehen, oder?
 
OP
OsunSeyi

OsunSeyi

Hacker
Hi!
SORRY, es fehlt ein $....
Nein, es fehlt natürlich kein export $PATH, sorry.
Habe Dein Script reinkopiert, da gibt's kein Vertun.
Und weil ich das Ergenis für fehlerhaft hielt, alles überprüft und das ganze nochmal gemacht.
Code:
echo "$(date '+%F %T) Vorher: >>$PATH<<" >> ~/PATH.debug
for i in ~/bin/*; do
    if [ ! -d "$i" ]; then
        continue;
    fi;
    PATH="$PATH:$i";
done;
export PATH;
echo "$(date '+%F %T) Nachher: >>$PATH<<" >> ~/PATH.debug
genau so wie's hier steht.
Die Formulierung:
Code:
echo "$(date '+%F %T) Vorher: >>$PATH<<"
funktioniert bei mir in der Konsole nicht !
Es wird eine Eingabe erwartet, und ich muß mit ^C abbrechen.
gruß,tom
 

regexer

Advanced Hacker
OsunSeyi schrieb:
Die Formulierung:
Code:
echo "$(date '+%F %T) Vorher: >>$PATH<<"
funktioniert bei mir in der Konsole nicht !
Es wird eine Eingabe erwartet, und ich muß mit ^C abbrechen.
gruß,tom
Sorry, das ist ein Flüchtigkeitsfehler. Es fehlt ein einfaches Hochkomma nach %T. Also:
Code:
echo "$(date '+%F %T') Vorher: >>$PATH<<"
...
echo "$(date '+%F %T') Nachher: >>$PATH<<"

... das kommt davon, wenn man nicht alles haarklein testet. :oops:
 
Oben