Il mio tema terminale era così,

Ma ho pensato che il prompt avesse sprecato così tanto spazio. E più tardi ho avuto l'idea che avrei potuto pulire il prompt ogni volta che ho eseguito un comando. Stavo usando bash, una delle soluzioni è usare la preexec_invoke_execfunzione.
Uso il seguente comando per pulire i caratteri dell'ultimo prompt:
echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"
In modo che il terminale sia molto pulito, in questo modo,

Ma ora il mio problema è che ci saranno problemi se voglio usare più comandi in una riga , diciamo, quando uso for i in ....
Ecco la versione completa della funzione nel mio .bashrc,
preexec () { echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"; echo -n "$1"; echo -ne " \033[37;2m["; echo -n "$2"; echo -ne "]\033[0m\n"; }
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"`;
local this_pwd=`pwd`;
preexec "$this_command" "$this_pwd"
}
trap 'preexec_invoke_exec' DEBUG
zsh...
for i in $(seq 1 10); do ls; donecon la sua funzione, l'output dei comandi iteranti viene "ingoiato" per così dire. Quindi OP ha voluto disinfettare il comportamento mentre abilitava quel prompt. Il motivo per cui sostengo questo è l'interesse per la consapevolezza nella shell, l'usabilità, il feedback e la portabilità. Il link che avevo inserito nel mio precedente commento porta al post su superutente: si sono presi la briga di attribuire questo snippet, quindi è un prototipo che emula la funzionalità zsh nativa (che ritengo interessante), sotto forma di una funzione trap Qui.