将 bash 输入保持在屏幕顶行

将 bash 输入保持在屏幕顶行

我想将bash命令提示符输入保留在屏幕顶部,以便旧命令的输出向下而不是向上推。

我怎样才能实现这个目标?

答案1

将这些行添加到您的.bashrc

prompt_on_top() {
  tput cup 0 0
  tput el
  tput el1
}

pre_cmd() {
  if [ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] || [ -n "$COMP_LINE" ]; then
    return
  fi
  printf "\33[2J"
}

PROMPT_COMMAND="prompt_on_top"
trap 'pre_cmd' DEBUG

bash提示命令,其中保存的命令将在bash显示提示符之前执行。这里我们将其设置为 function prompt_on_top,它使用输出将光标设置在屏幕顶部。

bash还有一种方法可以在执行任何命令之前执行命令,使用陷阱来处理信号DEBUG。这里我们将其设置为 function pre_cmd,这将清除旧屏幕,并且如果我们完成了则不执行任何操作(COMP_LINE不为空)或运行命令BASH_PROMPT


这种方法有一个限制,如果命令输出太长而无法适应屏幕,那么输出将被prompt_on_top操作覆盖。在这种情况下,您需要将输出通过管道传输到分页器以读取整个输出。

相关内容