Konsole/Terminal - Befehl über mehrere Zeilen editieren

Post Reply
Message
Author
User avatar
fantaeiner
Posts: 53
Joined: 31. Dec 2004 14:44
Contact:

Konsole/Terminal - Befehl über mehrere Zeilen editieren

#1 Post 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.

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Ich hatte dieses Problem immer mit Prompts, die Steuersequenzen enthalten. Versuch mal, ob es mit PS1='$ ' funktioniert.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

User avatar
fantaeiner
Posts: 53
Joined: 31. Dec 2004 14:44
Contact:

Problem erst einmal gelöst

#3 Post 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

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post 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
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Post Reply