Я заметил, что некоторые примеры bash for loop распределены по нескольким строкам в примерах
for VARIABLE in file1 file2 file3
do
command1 on $VARIABLE
command2
commandN
done
(например, здесь http://www.cyberciti.biz/faq/bash-for-loop/ ) Как ввести новую строку в терминале bash (я использую putty)? Когда я нажимаю ввод в конце строки, система выполняет его.
bash
line-editor
giorgio79
источник
источник
bash
вы можете использовать комбинацию клавиш,Ctrl + x + e
чтобы открыть содержимое командной строки в редакторе, таком как vim, где вы можете работать с ним легче, когда вы закончите, вы можете выйти из редактора и команда будет запущена.Ответы:
Когда вы нажимаете Enterв конце:
Оболочка не может ничего выполнить, так как этот
for
цикл не завершен. Таким образом, вместо этого он будет печатать другое приглашение,$PS2
приглашение (обычно>
), пока вы не введете закрытиеdone
.Однако после
>
отображения вы не можете вернуться к редактированию первой строки.Кроме того, вместо того, чтобы печатать Enter, вы можете напечатать Ctrl-VCtrl-J. Таким образом, символ новой строки (он же
^J
) вводятся без текущего буфера быть принят , а затем вы можете вернуться к редактированию первой строки позже.В
zsh
, вы можете нажать Alt-Enterили, EscEnterчтобы вставить символ новой строки, не принимая текущий буфер. Чтобы получить такое же поведениеbash
, вы можете добавить к своему~/.inputrc
:(
\026
будучи^V
персонажем).источник
Ctrl-J
начать иCtrl-D
закончить, в конечном итоге хорошо работает для меня.