Jak wrócić do poprzedniej linii skryptu w terminalu?

8

Próbuję napisać scenariusz, ale utknąłem tutaj. Proszę zobaczyć kod!

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

Czy jest jakiś sposób, aby przejść do poprzedniej linii? To znaczy, że był błąd, w którym się popełniłem touch august $i+$2. Wcisnąłem ENTERklawisz, więc poszedłem do nowej linii. Jak mogę wrócić do poprzedniej linii?

rɑːdʒɑ
źródło
powinieneś napisać skrypt w pliku, a następnie uruchomić go z terminala. Możesz także użyć klawisza UP dla poprzedniego polecenia, ale nie ma możliwości cofnięcia polecenia.
shantanu

Odpowiedzi:

1

bashEdytor wiersza poleceń nie obsługuje tego, albo rób, jak sugeruje anwar , albo trzymaj wszystko w jednym wierszu oddzielone średnikami lub umieść to w pliku skryptu.

Na marginesie zshma funkcje, które pomagają w tym. zshRedaktor linia ( zle) jest bardziej w pełni funkcjonalny edytor i podpory ruchome wewnątrz polecenia multi-line. Gdy polecenie staje się zbyt długie, aby je obsłużyć zle, ma wbudowaną funkcję edit-command-line, która otwiera wiersz poleceń w twoim ulubionym edytorze. Zwykle nie jest związany, spróbuj z:

bindkey "^[e" edit-command-line

Alt-e powinien teraz aktywować, zapisać i wyjść, aby wrócić do wiersza poleceń.

Thor
źródło
1

Po naciśnięciu Enteri pojawieniu się komunikatu o błędzie możesz po prostu wrócić do historii:

Wystarczy nacisnąć klawisz na klawiaturze, aby naprawić literówkę. Jeśli naciśniesz przycisk, terminal pokaże ci ten wiersz:

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

Popraw błędnie wpisane elementy touch august $i+$2i dodaj donena końcu polecenia.

Następnie naciśnij Enterklawisz. To powinno rozwiązać twój problem.

Anwar
źródło
1

jak wyjaśniono tutaj , w bashu masz polecenia do manipulowania historią, zgodnie z instrukcją. Jednym z nich jest edit-and-execute-command.

Spowoduje to otwarcie edytora z poleceniami wpisanymi w pliku tymczasowym i łatwe korygowanie poprzednich wierszy. Możesz to osiągnąć w trybie emacsa C-xC-e, oraz w trybie vi, naciskając vw trybie normalnym.

edit-and-execute-command (C-xC-e)

Wywołaj edytor w bieżącym wierszu poleceń i wykonaj wynik jako polecenia powłoki. Bash próbuje wywołać $ VISUAL, $ EDITOR i emacs jako edytor, w tej kolejności.

kalnar
źródło
Łał. Lata Linuksa i po prostu to wiem.
azzamsa
0

To działało dla mnie.

CTRL+ Cod prądu command. Następnie naciśnij . Teraz możesz edytować dowolną linię, poruszając się za pomocą arrow buttons- lub .

Powodzenia...

Aakash Shah
źródło