例如,我的 bash 别名之一是这样的
alias p='clear;ls -lt;pwd;'
clear
还清除了我不想要的历史记录。我只想暂时清除屏幕。
Ctrl+L然而正是我想要的。如何在我的别名中使用它?
答案1
如果clear
正在清除历史记录和终端,则必须有一个函数、别名或脚本正在执行此操作。看看什么type -a clear
告诉你。
清除终端的另一种方法是使用它执行与应该执行的tput clear
操作完全相同的操作。clear
您也可以尝试直接使用转义序列(例如 xterm)来执行此操作,但对于不同的终端可能会有所不同(它应该适用于任何模拟 xterm 的终端,例如 gnome-terminal、PuTTY 等):printf '\e[H\e[2J'
答案2
您所要求的一般称为从 bash 执行 readline 命令(相当于zsh 中的zle -U $key_sequence
或zle $widget $arguments[@]
)。据我所知,这在 bash 中是不可能的。
但是,在这种特定情况下,我没有观察到运行clear
和键入Ctrl+L( readline command clear-screen
)之间有任何区别。