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

[solved] Fehlermeldung -bash:[:missing]

nandrol

Newbie
Hallo zusammen,
oben angeführte Fehlermeldung kommt wenn ich in
der Konsole su - eingebe. Bei su passiert dies nicht.
Arbeiten kann ich ganz normal so mit dieser Fehlermeldung.
Aber sie nervt und ich möchte gerne wissen wodurch sie
verursacht wird.
OS ist Suse 10.1.
Vielen Dank im voraus für eure Hilfe.
gruss
nandrol
 

basman

Member
Eines der init-scripte scheint fehlerhaft zu sein. Ich meine damit alle Scripte, die beim starten einer Login-Shell (bash --login) ausgeführt werden. Dazu gehören:

  • /etc/profile*
    /etc/bash*
    /root/.profile
    /root/.bashrc

Versuche, in einer root-shell all diese scripte manuell zu sourcen. Sobald der Fehler erscheint, hast du den Bösewicht gefunden. Manuell sourcen z.B. mit
Code:
. /root/.bashrc

Wenn du genauer wissen willst, welche Zeile es verursacht, führe das Bösewicht-Script dann so aus:
Code:
bash -x /root/.bashrc
Das listet dir den trace-output auf, um zu sehen, welche Befehle ausgeführt werden.
 
OP
N

nandrol

Newbie
Erst mal danke für die schnelle Antwort.
Ich gehe davon aus das ich mich zu blöd anstelle.
Ich finde nur eine Datei die sich mit der Bash beschäftigt
und die liegt unter /etc/bash.bashrc.
Bei den anderen von dir sagt er immer Datei oder Verzeichnis
nicht gefunden.
Im rootverzeichniss finde ich garnichts.
Aber der Blöde sitzt vor dem PC vermute ich mache was verkehrt.
Frage was?
Oder ist unter Suse 10.1 das ganze wieder wo anders untergebracht.
gruss
nandrol
 

oc2pus

Ultimate Guru
1) setze den Befehl "set -x" (ohne "") an den Anfang von /etc/profile
2) log out und wieder anmelden
3) Poste die Ausgabe hier
 
OP
N

nandrol

Newbie
+ test -r /etc/profile.d/xdg.sh
+ . /etc/profile.d/xdg.sh
++ '[' -z '/usr/local/share/:/usr/share/:/etc/opt/kde3/share/:/opt/kde3/share/:/opt/gnome/share/]'
-bash: [: missing `]'
+ for s in '/etc/profile.d/*.sh'
+ test -r /etc/profile.d/zzz-glib2.sh
+ . /etc/profile.d/zzz-glib2.sh
++ export G_BROKEN_FILENAMES=1
++ G_BROKEN_FILENAMES=1
++ west_europe_legacy_encoding=ISO-8859-15
++ russian_legacy_encoding=KOI8-R
++ sr_YU_legacy_encoding=ISO-8859-2,CP1250
Habe die Ausgabe etwas gekürzt, hoffe es hilft weiter
gruss
nandrol
 

oc2pus

Ultimate Guru
/etc/profile.d/xdg.sh <== da ist der Übeltäter ;)

Code:
[ -z  /usr/local/share/:/usr/share/:/etc/opt/kde3/share/:/opt/kde3/share/:/opt/gnome/share/]
ändern zu
Code:
[ -z /usr/local/share/:/usr/share/:/etc/opt/kde3/share/:/opt/kde3/share/:/opt/gnome/share/  ]

d.h. VOR der "]" fehlt ein LEERZEICHEN
 
OP
N

nandrol

Newbie
Ich gehe davon aus das ich die Änderung in der von
Dir oben angegebenen Datei vornehmen muss,oder?
Aber nochmal Danke für die prompte Hilfe.
Hoffe die Frage kommt dir jetzt nicht zu blöd vor.
gruss
nandrol
 

oc2pus

Ultimate Guru
diese Datei editieren /etc/profile.d/xdg.sh und die angegeben Zeile suchen und korrigieren
 
OP
N

nandrol

Newbie
Vielen Dank für deine Geduld.
Datei habe ich gefunden.
Leider sieht mein Eintrag so aus
[ -z $XDG_DATA_DIRS];then
export XDG_DATA_DIRS=/usr/local/share:/usr/share::/opt/kde3/share:/opt/gnome/share/ ]
Etwas anders wie der in der Ausgabe nach set -x.
Die Änderungen am Ende sind von mir. Aber ich glaube das dies nicht
richtig ist, weil die Fehlermeldung bleibt.
gruss
nandrol
 
OP
N

nandrol

Newbie
Vielen vielen Dank,
das wars jetzt funktioniert su - wieder wie gewohnt.
Ich weiss zwar nicht wie der Fehler passiert ist, aber er ist weg :D
Freundliche und gute Hilfe, danke
gruss
nandrol
 
Oben