Como inserir / iniciar uma nova linha no terminal bash?

8

Percebo que alguns exemplos de loop bash estão espalhados em várias linhas nos exemplos

for VARIABLE in file1 file2 file3
do
    command1 on $VARIABLE
    command2
    commandN
done

(por exemplo, aqui link ) Como faço para inserir uma nova linha no terminal bash (eu uso putty)? Quando pressiono enter no final de uma linha, o sistema o executa.

    
por giorgio79 26.06.2013 / 22:13

1 resposta

21

Quando você pressionar Enter ao final de:

for VARIABLE in file1 file2 file3

O shell não pode executar nada desde que o loop for não tenha terminado. Então, em vez disso, ele imprimirá um prompt diferente, o prompt $PS2 (geralmente > ), até que você insira o fechamento done .

No entanto, após > ser exibido, não é possível voltar para editar a primeira linha.

Como alternativa, em vez de digitar Enter , você pode digitar Ctrl-V Ctrl-J . Dessa forma, o caractere de nova linha (também conhecido como ^J ) é inserido sem que o buffer atual seja aceito , e você pode voltar a editar a primeira linha mais tarde.

Em zsh , você pode pressionar Alt-Enter ou Esc Inserir para inserir um caractere de nova linha sem aceitar o buffer atual. Para obter o mesmo comportamento em bash , você pode adicionar ao seu ~/.inputrc :

"\e\C-m": "6\n"

( 6 sendo o caractere ^V ).

    
por 27.06.2013 / 00:23