在命令行提示之间插入空行

Slo*_*rks 9 command-line bash

使用命令行时,它通常会变得非常混乱。例如,检查过去的命令及其输出变得不方便。

我希望每次在显示命令提示符之前都添加一个换行符。像这样:

<clutter>
<blank line>
name@machine:~$
Run Code Online (Sandbox Code Playgroud)

我使用 bash 外壳。如何做到这一点?

Slo*_*rks 22

实现此目的的一种方法是修改.bashrc文件。只需将以下内容放在.bashrc文件末尾即可。

PS1="\n$PS1"
Run Code Online (Sandbox Code Playgroud)

为了解释这PS1是如何工作的,变量是包含应该作为提示显示的内容。所有这一切都是说“设置PS1为 的先前内容PS1,并在前面添加换行符”。将它.bashrc放在大多数发行版中只会让 bash 在您每次打开交互式 shell 时运行它(但不是登录 shell - 请参阅登录 shell 和非登录 shell 之间的区别?)。

  • 为了解释这是如何工作的,PS1 是包含应作为提示显示的内容的变量。所有这一切都是说“将 PS1 设置为 PS1 的先前内容,并在前面添加一个换行符”。 (2认同)

cuo*_*glm 6

您可以使用PROMPT_COMMAND

PROMPT_COMMAND="printf '\n';$PROMPT_COMMAND"
Run Code Online (Sandbox Code Playgroud)

或者:

PROMPT_COMMAND="echo;$PROMPT_COMMAND"
Run Code Online (Sandbox Code Playgroud)

  • 第一个应该是`PROMPT_COMMAND="printf '\n';$PROMPT_COMMAND"`吗?以目前的形式,当我将它放入`.bashrc` 文件时,它似乎可以做任何事情。 (2认同)
  • Slothworks 的替代方案更好,因为您的替代方案会在命令行上运行的每个命令之后执行一个额外的命令。`printf` 和 `echo` 当然是非常轻量级的,但是当 `PS1` 完成这项工作时,使用 `PROMPT_COMMAND` 仍然没有意义。 (2认同)