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?
command-line
bash
rɑːdʒɑ
fonte
fonte
Respostas:
bash
O 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,
zsh
possui recursos que ajudam com isso. Ozsh
editor 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,zle
ele possui um recurso internoedit-command-line
, que abre a linha de comando no seu editor favorito. Geralmente não é vinculado, tente com:Alt-e agora deve ativá-lo, salve e saia para voltar à linha de comando.
fonte
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:
Corrija o material digitado incorretamente
touch august $i+$2
e adicione umdone
no final do comando.Em seguida, pressione a Entertecla Isso deve resolver seu problema.
fonte
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, pressionandov
no modo normal.fonte
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õesarrow buttons
- ← ↑ →ou ↓.Boa sorte...
fonte