Wie kann ich zur vorherigen Zeile eines Skripts im Terminal zurückkehren?

8

Ich versuche ein Skript zu schreiben, aber ich stecke hier fest. Siehe den Code bitte!

aug@august:~/play$ for i in {1..100..4}
> do
> echo "august"
> touch august $i+$2
> mkdir dir

Gibt es einen Weg zur vorherigen Zeile? Ich meine, es gab einen Fehler, den ich gemacht habe touch august $i+$2. Ich habe die ENTERTaste gedrückt und mich für eine neue Leitung entschieden. Wie kann ich zur vorherigen Zeile zurückkehren?

rɑːdʒɑ
quelle
Sie sollten ein Skript in eine Datei schreiben und es dann vom Terminal aus ausführen. Sie können auch die UP-Taste für den vorherigen Befehl verwenden, jedoch keine Möglichkeit, den Befehl zurückzusetzen.
Shantanu

Antworten:

1

bashDer Befehlszeileneditor unterstützt dies nicht, entweder wie von anwar vorgeschlagen , oder alles in einer Zeile durch Semikolons getrennt oder in eine Skriptdatei eingefügt.

Nebenbei bemerkt, zshhat Funktionen, die dabei helfen. Der zshZeileneditor ( zle) ist ein umfassenderer Editor und unterstützt das Verschieben innerhalb eines mehrzeiligen Befehls. Wenn der Befehl zu lang wird, um zleihn zu verarbeiten , verfügt er über eine integrierte Funktion edit-command-line, die die Befehlszeile in Ihrem bevorzugten Editor öffnet. Es ist normalerweise nicht gebunden, versuchen Sie es mit:

bindkey "^[e" edit-command-line

Alt-e sollte es jetzt aktivieren, speichern und beenden, um zur Befehlszeile zurückzukehren.

Thor
quelle
1

Nachdem Sie gedrückt Enterund eine Fehlermeldung erhalten haben, können Sie einfach in den Verlauf zurückkehren:

Drücken Sie einfach die Taste auf Ihrer Tastatur, um den Tippfehler zu beheben. Wenn Sie die Taste drücken, zeigt das Terminal diese Zeile an:

for i in {1..100..4}; do echo "august"; touch august $i+$2; mkdir;

Korrigieren Sie die fehlerhaften Daten touch august $i+$2und fügen Sie doneam Ende des Befehls ein hinzu.

Dann Enterdrücken Sie die Taste. Dies sollte Ihr Problem lösen.

Anwar
quelle
1

Wie hier erklärt , haben Sie in Bash Befehle zum Bearbeiten des Verlaufs, wie im Handbuch angegeben. Einer von ihnen ist edit-and-execute-command.

Dadurch wird Ihr Editor mit Ihren Befehlen geöffnet, die bereits in eine temporäre Datei eingegeben wurden, und Sie können vorherige Zeilen leicht korrigieren. Sie können dies im Emacs-Modus durch C-xC-eund im vi-Modus durch Drücken vim normalen Modus erreichen.

Befehl zum Bearbeiten und Ausführen (C-xC-e)

Rufen Sie einen Editor in der aktuellen Befehlszeile auf und führen Sie das Ergebnis als Shell-Befehle aus. Bash versucht, $ VISUAL, $ EDITOR und emacs als Editor in dieser Reihenfolge aufzurufen.

Kalnar
quelle
Beeindruckend. Jahre Linux, und das weiß ich einfach.
Azzamsa
0

Das hat bei mir funktioniert.

CTRL+ Cvom Strom command. Drücken Sie dann die . Jetzt können Sie die gewünschte Zeile bearbeiten, indem Sie sich mit arrow buttons- oder bewegen .

Viel Glück...

Aakash Shah
quelle