変更可能なファイルから読み込んだlinuxコマンドを実装し、 をターミナルで1秒ごとに動的に表示したい。どのように動的にLinuxの端末で結果を表示するには? 「トップ」コマンドのような?ありがとう!Linux端末で結果を動的に表示する方法は? like 'top'コマンド
男(Linuxのオンラインマンがman7.orgサイト上にある)で説明したようにあなたがwatch
ツールを使用することができます
変更可能なファイルから読み込んだlinuxコマンドを実装し、 をターミナルで1秒ごとに動的に表示したい。どのように動的にLinuxの端末で結果を表示するには? 「トップ」コマンドのような?ありがとう!Linux端末で結果を動的に表示する方法は? like 'top'コマンド
男(Linuxのオンラインマンがman7.orgサイト上にある)で説明したようにあなたがwatch
ツールを使用することができます
:たとえばhttp://man7.org/linux/man-pages/man1/watch.1.html
watch runs command repeatedly, displaying its output and errors (the
first screenfull). This allows you to watch the program output
change over time. By default, command is run every 2 seconds and
watch will run until interrupted.
:
watch -n 1 tail -n 23 file
これは(コマンドtail -n 23 file
を実行しますファイルfile
の最後の25行を1秒ごとに表示します(オプション-n 1
:watch
)。 watch
はコマンドを実行して出力を表示し、秒間スリープした後、端末(ANSI)コマンドシーケンスで画面を消去します。そこwatch
のいくつかの実装があり、最も簡単なのはbusybox
パッケージである:https://git.busybox.net/busybox/tree/procps/watch.c?h=1_17_stable
while (1) {
/* home; clear to the end of screen */
printf("\033[H""\033[J");
...
fflush_all();
...
system(cmd);
sleep(period);
}
(とfflush_allがfflush(stdout)
のjustカスタムbusyboxの変異体である)画面をクリアする\033[H
と\033[J
シーケンスがあります。 Linuxドキュメントのコードはconsole_codes (4)
manページ:http://man7.org/linux/man-pages/man4/console_codes.4.htmlです。そして\033
はESCで、ESC [
はCSIで、ECMA-48 CSI sequences
セクションでは、CSI H
とCSI J
コマンドについて説明します。すでに実装されて
ECMA-48 CSI sequences
CSI (or ESC [) is followed by a sequence of parameters .. An empty or
absent parameter is taken to be 0. The sequence of parameters may be
preceded by a single question mark.
H CUP Move cursor to the indicated row, column (origin at 1,1).
J ED Erase display (default: from cursor to end of display).
そのを。 'watch'コマンドを探します。 – Arash
ありがとうございました@Arash、 'watch'は私を助けることができます。しかし、私は「トップ」と「ウォッチ」がどのように動作するのかを知りたいのです。つまり、ターミナルで出力をフラッシュする方法です。ソースコードを見るべきかもしれません。 – zhangwbnn