Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Konsole/Terminal - Befehl über mehrere Zeilen editieren

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
fantaeiner



Anmeldungsdatum: 31.12.2004
Beiträge: 53

BeitragVerfasst am: 02. Dez 2012 10:43   Titel: Konsole/Terminal - Befehl über mehrere Zeilen editieren

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.
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 02. Dez 2012 18:20   Titel:

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.
 
Benutzer-Profile anzeigen Private Nachricht senden

fantaeiner



Anmeldungsdatum: 31.12.2004
Beiträge: 53

BeitragVerfasst am: 02. Dez 2012 19:46   Titel: Problem erst einmal gelöst

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
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 02. Dez 2012 20:56   Titel:

Man muss die Steuersequenzen richtig schachteln. Viele Leute vergessen das umgebende \[ und \] und wundern sich dann über Murks.
Code:

Falsch: \033[1;30m
Richtig: \[\033[1;30m\]

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy