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

gio*_*o79 13 bash line-editor

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

for VARIABLE in file1 file2 file3
do
    command1 on $VARIABLE
    command2
    commandN
done
Run Code Online (Sandbox Code Playgroud)

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

Sté*_*las 31

当您按下Enter结束时:

for VARIABLE in file1 file2 file3
Run Code Online (Sandbox Code Playgroud)

由于该for循环未完成,shell 无法执行任何操作。因此,它会打印一个不同的提示,即$PS2提示(通常为>),直到您输入结束done.

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

或者,Enter您可以输入 ,而不是输入Ctrl-VCtrl-J。这样,在^J接受当前缓冲区的情况下输入换行符(又名),然后您可以稍后返回编辑第一行。

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

"\e\C-m": "\026\n"
Run Code Online (Sandbox Code Playgroud)

\026作为^V角色)。