Page 1 of 1

Konsole/Terminal - Befehl über mehrere Zeilen editieren

Posted: 02. Dec 2012 10:43
by fantaeiner
Hallo Leute,

folgendes Problem habe ich, wenn ich Befehle in der bash über mehrere Zeilen eingebe.
Über die Pfeiltasten können in der bash die Befehle der history aufgerufen werden. Offenbar gibt es dabei nicht sichtbare Zeichen (wie z.B. Zeilenumbruch), die mir ein Bearbeiten der alten Befehle erschweren, z.B.
for i in a1 a2 a3; do echo $i;done
erzeugt
a1
a2
a3
So weit. So gut.
Wenn ich nun den Befehl mit der Pfeiltaste erneut aufrufe und "2" nach von "a2" mit der "<-"-Taste löschen möchte, dann sieht der Befehl nach einmaligem Tippen der "<-"-Taste hinter "a2" so aus:
for i in a1 a3; do echo $i;done
Das Ergebnis ist aber das:
a1
a2
3
in der history sieht der Befehl, der ausgeführt wurde auch passend zur Ausgabe aus: for i in a1 a2 3; do echo $i;done
Sehr schön, aber da ich ja eigentlich "2" löschen wollte, ist das irgendwie nicht so ganz richtig.

Was könnte hier das Problem sein? Es tritt nur im Zusammenhang mit Zeilenumbrüchen auf. Ohne Zeilenumbruch würde im obigen Beispiel die "2" tatsächlich einfach gelöscht werden.

fragt der Fanta

Kleiner Nachtrag:
Beim Kopieren des Befehls
"for i in a1 a2 a3; do echo $i;done"
" in dieses Textfeld sieht der Befehl eigentlich auch so aus:
"for i in a1 a2 a3; do e
cho $i;done"
Also mit Zeilenumbruch. Der ist irgendwie das Problem scheint mir.

Posted: 02. Dec 2012 18:20
by Janka
Ich hatte dieses Problem immer mit Prompts, die Steuersequenzen enthalten. Versuch mal, ob es mit PS1='$ ' funktioniert.

Janka

Problem erst einmal gelöst

Posted: 02. Dec 2012 19:46
by fantaeiner
Ja, mit PS1='$ ' funktioniert alles bestens.

Das bedeutet wohl: ich habe Steuerzeichen in meinem Prompt. Ich versuche herauszufinden, welche und melde mich dann wieder.

Das Merkwürdige ist, dass es jetzt auch mit dem "normalen Prompt" funktioniert. Wenn das Problem wieder kommt, dann weiß ich jetzt jedenfalls, dass ich mir PS1 genauer anschauen sollte.

Vielen Dank für die Hilfe und viele Grüße
Marko

Posted: 02. Dec 2012 20:56
by Janka
Man muss die Steuersequenzen richtig schachteln. Viele Leute vergessen das umgebende \[ und \] und wundern sich dann über Murks.

Code: Select all

Falsch&#58; \033&#91;1;30m
Richtig&#58; \&#91;\033&#91;1;30m\&#93;
Janka