Quando você pressiona Enterno final de:
for VARIABLE in file1 file2 file3
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 fechamento done
.
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 comportamento bash
, você pode adicionar ao seu ~/.inputrc
:
"\e\C-m": "\026\n"
( \026
sendo o ^V
personagem).
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.