走っている間
top -n1 | head
端末のカーソルが消えます。走ればtop -n1
戻ってきます。
gnome-terminal
tilix
Ubuntu 16.04およびCentOS 7.5でテストされました。
この問題なく実行すると、出力の終わりにカーソルが再び表示されるように見えますtop -n1 | tail
が、これは印刷時にのみ発生しません。top
head
原因は何ですか?カーソルをより適切に復元する方法は?
ベストアンサー1
IMHO、最良の方法は、他のプログラムやファイルへのパイプなどの非対話型ユースケースで使用するように設計されたtop
「バッチ」モード(フラグ)を使用することです。-b
だからこれ
top -n1 -b | head
カーソルがなければシェルを離れません。
についてはカーソルが消えたのはなぜですか?...
top
インタラクティブなプログラムなので、入力を受け取り、項目をスクロールするなどの操作を実行するために、端末を「乱雑に」します。隠れるカーソル。
終了すると、呼び出される前に見つかったカーソルと表示状態を復元する必要があります。制御コード端末自体に。
コマンドをパイピングすると、head
この制御コードは失敗します(head
デフォルトでは最初の10行だけが印刷され、両方の出力top
と端末の状態を復元するための制御コードは常に> 10行です)。
実際にhead
印刷するのに十分な行を与えると、カーソルが表示されます!
例えば、
top -n1 | head -n 100
私のシステムにカーソルが残っています。