Tambahkan baris ini ke .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
bashmemiliki PROMPT_COMMAND , yang memegang perintah akan dieksekusi sebelum bashshow prompt. Di sini kita mengaturnya untuk berfungsi prompt_on_top, yang menggunakan tput untuk mengatur kursor di bagian atas layar.
bashjuga memiliki cara untuk mengeksekusi perintah sebelum mengeksekusi perintah apa pun, menggunakan perangkap untuk menangani sinyal DEBUG. Di sini kita mengaturnya untuk berfungsi pre_cmd, yang akan menghapus layar lama, dan tidak melakukan apa-apa jika kita menyelesaikannya ( COMP_LINE tidak kosong) atau menjalankan perintah BASH_PROMPT.
Ada batasan dengan pendekatan ini, jika output perintah terlalu panjang dan sesuai di layar, maka output akan ditimpa oleh prompt_on_toptindakan. Dalam hal ini, Anda perlu menyalurkan output ke pager untuk membaca seluruh output.
catsebuah file, urutannya akan terbalik?