Zauważam, że niektóre przykładowe bash dla pętli są rozłożone w wielu liniach w przykładach
for VARIABLE in file1 file2 file3
do
command1 on $VARIABLE
command2
commandN
done
(np. tutaj http://www.cyberciti.biz/faq/bash-for-loop/ ) Jak wprowadzić nowy wiersz w terminalu bash (używam szpachli)? Kiedy naciskam Enter na końcu linii, system wykonuje to.
bash
line-editor
giorgio79
źródło
źródło
bash
można użyć kombinację klawiszyCtrl + x + e
, aby otworzyć zawartość wiersza polecenia w edytorze takich jak vim, gdzie można pracować na nim łatwiej, kiedy skończysz można wyjść z edytora, a komenda będzie uruchamiane.Odpowiedzi:
Po naciśnięciu Enterna końcu:
Powłoka nie może nic wykonać, ponieważ ta
for
pętla nie jest zakończona. Zamiast tego wypisze inny monit,$PS2
monit (ogólnie>
), aż do momentu zamknięciadone
.Jednak po
>
wyświetleniu komunikatu nie można wrócić do edycji pierwszego wiersza.Alternatywnie, zamiast pisać Enter, możesz pisać Ctrl-VCtrl-J. W ten sposób znak nowej linii (aka
^J
) jest wprowadzany bez akceptacji bieżącego bufora , a następnie możesz wrócić do edycji pierwszego wiersza później.W
zsh
, można nacisnąć przycisk Alt-Enterlub EscEnter, aby wstawić znak nowej linii bez zapisywania bieżącego bufora. Aby uzyskać takie samo zachowaniebash
, możesz dodać do~/.inputrc
:(
\026
będąc^V
postacią).źródło
Ctrl-J
zacząć iCtrl-D
skończyć, skończyło się dla mnie dobrze.