Bash

我可以將 bash 配置為在控制台中鍵入每個命令之前執行“清除”嗎?

  • December 12, 2019

clear每次我在終端中鍵入一些命令時(在執行我的命令之前),我想配置 bash 來執行命令。我怎樣才能做到這一點?

我正在使用 Debian Linux。

Bash 有一個 precommand 鉤子。有點。

preexec () {
 clear
}
preexec_invoke_exec () {
   [ -n "$COMP_LINE" ] && return                     # do nothing if completing
   [ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # don't cause a preexec for $PROMPT_COMMAND
   local this_command=`history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//g"`; # obtain the command from the history, removing the history number at the beginning
   preexec "$this_command"
}
trap 'preexec_invoke_exec' DEBUG
bind 'RETURN: "\e[1~clear; \e[4~\n"'

之後,每次按下return而不是只寫\n它都會移動到行首,輸入文本clear;,然後移動到末尾並按\n預期輸入。

引用自:https://unix.stackexchange.com/questions/44713