ターミナルをクリアする方法はありますか?プロンプトを画面上部に残す代わりに、プロンプトを中央に残しますか? clear
は基本的にすべてのコマンドラインパラメータを無視するように見えます。
tput
を使用してこれを行う方法はいくつかあると思いましたが、見つかりません。
tput
を使用して、カーソルを画面の特定の行に移動できます。たとえば、
tput cup 11 0
それを12行目に移動します(値はゼロからカウントされます)。
同じように、tput
機能を使用すると、ed
を使用して、その位置から画面の最後までクリアできます。組み合わせる
tput cup 11 0 && tput ed
欲しかったのかもしれません。
画面の途中のマークに移動したい場合は、
stty size
(ほとんどのシステムでは)画面の行数です。それをコマンドに追加します。
tput cup $(stty size|awk '{print int($1/2);}') 0 && tput ed
clear
プログラムはtput ed
とは異なります:
警告:一部のプラットフォームでは tput ed
はかなり前に修正された問題のために機能しない場合があります。このような場合、curses/ncurses構成をアップグレードすると問題が解決します。
行数が奇数の場合、tput cup
はページ全体をクリアします。
これを次のように書くと修正されます:
tput cup $(($(stty size|awk '{print $1}')/2)) 0 && tput ed