Nervige Probleme mit der bash
Nervige Probleme mit der bash
Mich würde mal interresieren, ob nocht jemand so große Probleme mit der bash hat. Meine Version ist 3.1-1 (testing). Mit der Version aus unstable (3.1-2) sieht es auch nicht besser aus.
Zum Problem: Zum einen mal, dass wenn man an das Ende der ersten Zeile kommt, geht es am Anfang der ersten Zeile weiter, es erfolgt kein automatischer Zeilenumbruch, wie das normal wäre (siehe http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=343471).
Dieses Verhalten verschlimmert sich manchmal noch. Wenn man einen Befehl eingibt, sich vertippt und dann zum abbrechen einfach Enter drückt, kann es sein, dass das getippte noch in die nächste Zeile übernommen wird, aber nicht sichtbar ist.
Hat noch jemand solche Probleme? Hat sie jemand gelöst?
Zum Problem: Zum einen mal, dass wenn man an das Ende der ersten Zeile kommt, geht es am Anfang der ersten Zeile weiter, es erfolgt kein automatischer Zeilenumbruch, wie das normal wäre (siehe http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=343471).
Dieses Verhalten verschlimmert sich manchmal noch. Wenn man einen Befehl eingibt, sich vertippt und dann zum abbrechen einfach Enter drückt, kann es sein, dass das getippte noch in die nächste Zeile übernommen wird, aber nicht sichtbar ist.
Hat noch jemand solche Probleme? Hat sie jemand gelöst?
Gruß, Marcus
„Well done! We did it!“
Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE
„Well done! We did it!“
Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE
Ich drück dann immer Strg+L
Fals du ein farbiges Prompt hast, denk dran, die Steuersequenzen in \[ und \] einzuschließen
Also z.B.
Fals du ein farbiges Prompt hast, denk dran, die Steuersequenzen in \[ und \] einzuschließen
Also z.B.
Code: Alles auswählen
export PS1='\[\e[1m\]\w\[\e[0m\]\$ '
-
- Beiträge: 82
- Registriert: 19.07.2004 13:52:24
Jetzt sehe ich, wie du es gelöst hast. Entweder macht man einen Neustart oder man loggt sich aus. Dann sieht man erst das Ergebnis. Nur wie bekomme ich dann wieder den Prompt hin? Egal, was ich mache, es wird nichts.
Hier der Ausschnitt aus der .bashrc:
EDIT: Kommando zurück. Das Problem ist überhaupt das Benutzen der .bashrc. Ich habe sie nach bashrc verschoben. => kein Fehler
Kommentiere ich alle Einstellungen zum Prompt aus und benutze die .bashrc tritt der Fehler trotzdem auf. So war es glaube ich auch im bugreport, als ich ihn gelesen habe, habe ich das nur falsch verstanden.
D.h. die .bashrc ist das große Problem. Diesen Fehler nenne ich schwerwiegend.
Hier der Ausschnitt aus der .bashrc:
Code: Alles auswählen
# if not running interactively
[ -z "$PS1" ] && return
# set title and prompt
case "$TERM" in
xterm*|rxvt*)
PS1='\[\033[4m\]\h\[\033[0m\]:\w> \]'
PS2='\[> \]'
PROMPT_COMMAND='echo -en "\033]0;uxterm\007"'
;;
linux)
PS1='\[\h:\w> \]'
PS2='\[> \]'
;;
*)
;;
esac
Kommentiere ich alle Einstellungen zum Prompt aus und benutze die .bashrc tritt der Fehler trotzdem auf. So war es glaube ich auch im bugreport, als ich ihn gelesen habe, habe ich das nur falsch verstanden.
D.h. die .bashrc ist das große Problem. Diesen Fehler nenne ich schwerwiegend.
Gruß, Marcus
„Well done! We did it!“
Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE
„Well done! We did it!“
Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE
-
- Beiträge: 82
- Registriert: 19.07.2004 13:52:24
Nein, eigentlich nicht. Ich hab den Prompt (zum testen) einfach direkt angegeben. Also:
Konsole öffnen:.. einfügen und Enter/Return drücken.
Jetzt müsste sich der Prompt geändert haben und du kannst das ganze nocheinmal testen.
Konsole öffnen:
Code: Alles auswählen
export PS1='\[\e[1m\]\w\[\e[0m\]\$ '
Jetzt müsste sich der Prompt geändert haben und du kannst das ganze nocheinmal testen.

Ja, das wird wohl funktionieren. Logge ich mich beim System ein, verschiebe von bashrc zu .bashrc und source sie, läuft alles mit meinem neuen Prompt. Habe ich aber von vorneherein eine .bashrc und logge mich ein, habe ich wieder das selbe Problem.
Gruß, Marcus
„Well done! We did it!“
Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE
„Well done! We did it!“
Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE
-
- Beiträge: 82
- Registriert: 19.07.2004 13:52:24
Das ist eindeutig deine Definition der PS1 (PS1='\[\033[4m\]\h\[\033[0m\]:\w> \]'). Hab es bei mir ausprobiert und zwar mit einer 'alten' Bash V2.05b.0(1)-release und da tirtt dieser Fehler mit dieser PS1 Definition auch auf. Das ist also kein Fehlverhalten der Bash. Du hast einfach irgendwo einen Fehler in deiner Definition der Promptvariable PS1. Eindeutig.
Mit kompletten Ein-/ und Ausloggen? Übrigends funktioniert folgende Definition bei mir: PS1='\[\033[01;4m\]\h\[\033[01;00m\]:\w> '
Hast Du auch schon die /etc/bash.bashrc untersucht? Vielleicht liegt ja hier der Fehler.
[Edit]
Die PS[x] Definitionen dürfen natürlich nicht noch in einer anderen Konfigurationsdatei (/etc/bash.bashrc /etc/profile .bash_profile .bashrc .profile) stehen. Da diese Dateien per Default immer durchlaufen werden, würde der Fehler sonst nicht behoben. Erstelle doch einfach mal einen Testaccount und verändere da mal die Dateien.
Hast Du auch schon die /etc/bash.bashrc untersucht? Vielleicht liegt ja hier der Fehler.
[Edit]
Die PS[x] Definitionen dürfen natürlich nicht noch in einer anderen Konfigurationsdatei (/etc/bash.bashrc /etc/profile .bash_profile .bashrc .profile) stehen. Da diese Dateien per Default immer durchlaufen werden, würde der Fehler sonst nicht behoben. Erstelle doch einfach mal einen Testaccount und verändere da mal die Dateien.
Jetzt habe ich gerade mal ein downgrade auf die 2.05b aus sarge gemacht. Meine PS1 scheint tatsächlich problematisch zu sein. Schonmal ein Fehler. Habe auch rausgefunden, was der bash nicht passt.
Da störte wohl das \] am Ende. Entferne ich das, gibt es in der bash-2.05b keine Probleme.
In der bash aus testing (und aus der aus unstable) besteht das Problem trotzdem. Also ist ein downgrade die einzige Lösung. 
/etc/apt/preferences:
Toll, endlich wieder eine funktionierende bash! 
EDIT: Das mit den eckigen Klammern (\[ und \]) ist eh komisch. Mal braucht man sie und mal nicht. Nur so funktioniert alles fehlerfrei:
Code: Alles auswählen
PS1='\[\033[4m\]\h\[\033[0m\]:\w> \]'
Code: Alles auswählen
PS1='\[\033[4m\]\h\[\033[0m\]:\w> '

/etc/apt/preferences:
Code: Alles auswählen
Package: *
Pin: release o=Debian, a=testing
Pin-Priority: 900
Package: bash
Pin: version 2.05b-*
Pin-Priority: 1001

EDIT: Das mit den eckigen Klammern (\[ und \]) ist eh komisch. Mal braucht man sie und mal nicht. Nur so funktioniert alles fehlerfrei:
Code: Alles auswählen
case "$TERM" in
xterm*|rxvt*)
PS1='\[\033[4m\]\h\[\033[0m\]:\w> '
PS2='> '
PROMPT_COMMAND='echo -en "\033]0;uxterm\007"'
;;
linux)
PS1='\h:\w> '
PS2='> '
;;
*)
;;
esac
Gruß, Marcus
„Well done! We did it!“
Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE
„Well done! We did it!“
Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE