Percebo que algumas amostras de amostras para loops estão espalhadas por várias linhas em exemplos
for VARIABLE in file1 file2 file3
do
command1 on $VARIABLE
command2
commandN
done
(por exemplo, aqui http://www.cyberciti.biz/faq/bash-for-loop/ ) Como insiro uma nova linha no terminal bash (uso massa de vidraceiro)? Quando pressiono enter no final de uma linha, o sistema a executa.
bash
line-editor
giorgio79
fonte
fonte
bash
é possível usar a combinação de tecladoCtrl + x + e
para abrir o conteúdo do prompt de comando em um editor como o vim, onde você pode trabalhar com mais facilidade. Quando terminar, você pode sair do editor e o comando será executado.Respostas:
Quando você pressiona Enterno final de:
O shell não pode executar nada, pois esse
for
loop não está concluído. Então, em vez disso, ele imprimirá um prompt diferente, o$PS2
prompt (geralmente>
), até você inserir o fechamentodone
.No entanto, após a
>
exibição, você não pode voltar para editar a primeira linha.Como alternativa, em vez de digitar Enter, você pode digitar Ctrl-VCtrl-J. Dessa forma, o caractere de nova linha (aka
^J
) é inserido sem que o buffer atual seja aceito e você pode voltar a editar a primeira linha posteriormente.Em
zsh
, você pode pressionar Alt-Enterou EscEnterpara inserir um caractere de nova linha sem aceitar o buffer atual. Para obter o mesmo comportamentobash
, você pode adicionar ao seu~/.inputrc
:(
\026
sendo o^V
personagem).fonte
Ctrl-J
começar eCtrl-D
terminar acabou funcionando bem para mim.