如何在bash终端中输入/开始新行?


11

我注意到一些示例循环bash分散在示例中的多行中

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

(例如,这里 http://www.cyberciti.biz/faq/bash-for-loop/)如何在bash终端中输入换行符(我使用腻子)?当我在一行末尾按Enter键时,系统将执行它。


1
另外,bash您还可以使用键盘组合Ctrl + x + e在诸如vim之类的编辑器中打开命令提示符的内容,在其中可以更轻松地对其进行操作,完成后,您可以退出编辑器,命令将运行。
slm

Answers:


28

当您按Enter以下内容的末尾时:

for VARIABLE in file1 file2 file3

Shell无法执行任何操作,因为该for循环尚未完成。因此,它将打印一个不同的$PS2提示(通常为>),直到您输入close为止done

但是,>显示后,您将无法返回来编辑第一行。

另外,Enter您也可以输入,而不是输入Ctrl-VCtrl-J。这样,在^J接受当前缓冲区的情况下输入了换行符(aka ),然后您可以稍后再编辑第一行。

在中zsh,您可以按Alt-EnterEscEnter插入换行符,而不接受当前缓冲区。要在中获得相同的行为bash,您可以添加到~/.inputrc

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

\026^V角色)。


Ctrl-J开始,Ctrl-D最后完成,对我来说很好。
DuckMaestro
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.