Когда вы нажимаете Enterв конце:
for VARIABLE in file1 file2 file3
Оболочка не может ничего выполнить, так как этот for
цикл не завершен. Таким образом, вместо этого он будет печатать другое приглашение, $PS2
приглашение (обычно >
), пока вы не введете закрытие done
.
Однако после >
отображения вы не можете вернуться к редактированию первой строки.
Кроме того, вместо того, чтобы печатать Enter, вы можете напечатать Ctrl-VCtrl-J. Таким образом, символ новой строки (он же ^J
) вводятся без текущего буфера быть принят , а затем вы можете вернуться к редактированию первой строки позже.
В zsh
, вы можете нажать Alt-Enterили, EscEnterчтобы вставить символ новой строки, не принимая текущий буфер. Чтобы получить такое же поведение bash
, вы можете добавить к своему ~/.inputrc
:
"\e\C-m": "\026\n"
( \026
будучи ^V
персонажем).
bash
вы можете использовать комбинацию клавиш,Ctrl + x + e
чтобы открыть содержимое командной строки в редакторе, таком как vim, где вы можете работать с ним легче, когда вы закончите, вы можете выйти из редактора и команда будет запущена.