Konsole/Terminal - Befehl über mehrere Zeilen editieren
Posted: 02. Dec 2012 10:43
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.
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.