Nervige Probleme mit der bash

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
H4kk3r
Beiträge: 724
Registriert: 02.01.2006 16:50:51
Wohnort: in der Nähe von Heidelberg

Nervige Probleme mit der bash

Beitrag von H4kk3r » 15.01.2006 18:12:58

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?
Gruß, Marcus

„Well done! We did it!“

Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 15.01.2006 19:52:29

Ich drück dann immer Strg+L

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\]\$ '

Benutzeravatar
H4kk3r
Beiträge: 724
Registriert: 02.01.2006 16:50:51
Wohnort: in der Nähe von Heidelberg

Beitrag von H4kk3r » 15.01.2006 19:59:18

Das mit STRG+L ist nicht schlecht, aber am Grundproblem ändert das leider auch nichts.
Gruß, Marcus

„Well done! We did it!“

Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE

WaldiMaywood
Beiträge: 82
Registriert: 19.07.2004 13:52:24

Beitrag von WaldiMaywood » 15.01.2006 22:04:26

>> aber am Grundproblem ändert das leider auch nichts

Ich hatte das gl. Problem. Nachdem ich den Prompt (PS1) entsprechend geändert hab, klappte das ganze wieder. Danke Joghurt! :-)

Benutzeravatar
H4kk3r
Beiträge: 724
Registriert: 02.01.2006 16:50:51
Wohnort: in der Nähe von Heidelberg

Beitrag von H4kk3r » 15.01.2006 22:43:35

Selbst, wenn ich den Standardprompt drin lasse, besteht das Problem noch.
Gruß, Marcus

„Well done! We did it!“

Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE

Benutzeravatar
H4kk3r
Beiträge: 724
Registriert: 02.01.2006 16:50:51
Wohnort: in der Nähe von Heidelberg

Beitrag von H4kk3r » 15.01.2006 23:03:50

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:

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
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.
Gruß, Marcus

„Well done! We did it!“

Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE

WaldiMaywood
Beiträge: 82
Registriert: 19.07.2004 13:52:24

Beitrag von WaldiMaywood » 15.01.2006 23:18:24

Nein, eigentlich nicht. Ich hab den Prompt (zum testen) einfach direkt angegeben. Also:

Konsole öffnen:

Code: Alles auswählen

export PS1='\[\e[1m\]\w\[\e[0m\]\$ ' 
.. einfügen und Enter/Return drücken.

Jetzt müsste sich der Prompt geändert haben und du kannst das ganze nocheinmal testen. ;-)

Benutzeravatar
H4kk3r
Beiträge: 724
Registriert: 02.01.2006 16:50:51
Wohnort: in der Nähe von Heidelberg

Beitrag von H4kk3r » 15.01.2006 23:27:44

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

WaldiMaywood
Beiträge: 82
Registriert: 19.07.2004 13:52:24

Beitrag von WaldiMaywood » 15.01.2006 23:35:07

hhmm.. sry, kA. Ich hab den Prompt in meine bashrc eingetragen bzw. diesen geändert, und jetzt klappt alles wieder wie gehabt. :roll:

Benutzeravatar
H4kk3r
Beiträge: 724
Registriert: 02.01.2006 16:50:51
Wohnort: in der Nähe von Heidelberg

Beitrag von H4kk3r » 15.01.2006 23:36:42

Dann hattest du ein anderes Problem. Bei mir ist es überhaupt das Benutzen der .bashrc.
Trotzdem danke für deine Hilfe.
Gruß, Marcus

„Well done! We did it!“

Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE

Benutzeravatar
bodo99
Beiträge: 60
Registriert: 12.05.2003 11:53:13
Wohnort: Bamberg

Beitrag von bodo99 » 18.01.2006 22:06:20

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.

Benutzeravatar
H4kk3r
Beiträge: 724
Registriert: 02.01.2006 16:50:51
Wohnort: in der Nähe von Heidelberg

Beitrag von H4kk3r » 18.01.2006 22:11:43

Aber: Selbst wenn ich das weglasse, tritt der Fehler auf. Auch mit einer komplett lehren .bashrc tritt der Fehler auf.
Gruß, Marcus

„Well done! We did it!“

Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE

Benutzeravatar
bodo99
Beiträge: 60
Registriert: 12.05.2003 11:53:13
Wohnort: Bamberg

Beitrag von bodo99 » 18.01.2006 22:19:42

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.

Benutzeravatar
H4kk3r
Beiträge: 724
Registriert: 02.01.2006 16:50:51
Wohnort: in der Nähe von Heidelberg

Beitrag von H4kk3r » 28.01.2006 22:32:39

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.

Code: Alles auswählen

PS1='\[\033[4m\]\h\[\033[0m\]:\w> \]'
Da störte wohl das \] am Ende. Entferne ich das, gibt es in der bash-2.05b keine Probleme.

Code: Alles auswählen

PS1='\[\033[4m\]\h\[\033[0m\]:\w> '
In der bash aus testing (und aus der aus unstable) besteht das Problem trotzdem. Also ist ein downgrade die einzige Lösung. :twisted:

/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
Toll, endlich wieder eine funktionierende bash! 8)

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

Antworten