Como voltar para a linha anterior de um script no terminal?

8

Estou tentando escrever um script, mas estou preso aqui. Veja o código, por favor!

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

Existe alguma maneira de ir para a linha anterior? Quero dizer, houve um erro de digitação touch august $i+$2. Pressionei a ENTERtecla, então fui para a nova linha. Como posso voltar à linha anterior?

rɑːdʒɑ
fonte
você deve escrever um script em um arquivo e executá-lo no terminal. Você também pode usar a tecla UP para o comando anterior, mas não há como reverter o comando.
Shantanu

Respostas:

1

bashO editor de linha de comando do não suporta isso, faça o que o anwar sugere ou mantenha tudo em uma linha separada por ponto-e-vírgula ou coloque-a em um arquivo de script.

Em uma nota lateral, zshpossui recursos que ajudam com isso. O zsheditor de linha ( zle) é um editor com mais recursos e suporta a movimentação dentro de um comando de várias linhas. Quando o comando fica muito longo para ser manipulado, zleele possui um recurso interno edit-command-line, que abre a linha de comando no seu editor favorito. Geralmente não é vinculado, tente com:

bindkey "^[e" edit-command-line

Alt-e agora deve ativá-lo, salve e saia para voltar à linha de comando.

Thor
fonte
1

Depois de pressionar Entere receber uma mensagem de erro, você pode voltar ao histórico:

Basta pressionar a tecla do teclado para corrigir o erro de digitação. Se você pressionar a tecla, o terminal mostrará esta linha:

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

Corrija o material digitado incorretamente touch august $i+$2e adicione um doneno final do comando.

Em seguida, pressione a Entertecla Isso deve resolver seu problema.

Anwar
fonte
1

Como explicado aqui , no bash você tem comandos para manipular o histórico, conforme declarado no manual. Um deles é edit-and-execute-command.

Isso abrirá seu editor com os comandos já digitados em um arquivo temporário e você poderá corrigir as linhas anteriores facilmente. Você pode conseguir isso nos modos emacs C-xC-e, e vi, pressionando vno modo normal.

comando editar-e-executar-(C-xC-e)

Chame um editor na linha de comando atual e execute o resultado como comandos do shell. O Bash tenta chamar $ VISUAL, $ EDITOR e emacs como editor, nessa ordem.

kalnar
fonte
Uau. Anos de linux, e eu sei disso.
Azzamsa 30/08/19
0

Isto é o que funcionou para mim.

CTRL+ a Cpartir do atual command. Depois pressione o . Agora você pode editar a linha que desejar, movendo-se com os botões arrow buttons- ou .

Boa sorte...

Aakash Shah
fonte