watch(1) プログラムを定期的に実行し、出力をフルスクリーンで表示する

書式

watch [-dhvt] [-n <seconds>] [--differences[=cumulative]] [--help] [--interval=<seconds>] [--no-title] [--version] <command>

説明

watchcommand を繰り返し実行し、その出力を表示する (一画面に収まる一杯まで)。 watch を用いると、プログラムの出力の経時変化を監視できる。 デフォルトでは、プログラムは 2 秒おきに実行される。 時間の間隔を変えたい場合は、 -n または --interval を用いる。

-d または --differences このフラグを指定すると、更新が行われたとき、 前回と異なっている部分をハイライト表示する。 cumulative オプションをつけると、ハイライトが "sticky" になる。 すなわち、 実行が開始されてから変更があった全ての部分をハイライトで表示する。 -t または --no-title このオプションを指定すると、画面の先頭行の 時間間隔・コマンド名・現在時刻を示すヘッダと、 その後の空行が表示されなくなる。

watch は中断されるまで実行を続ける。

注意

command は "sh -c" に与えられる。したがって command を望みの通りに動作させるには、クォートを余分に用いる必要があるかもしれない。

POSIX のオプション処理が用いられる (つまり、オプション処理は最初にオプション以外の引数が現れた時点で終了する) ことに注意して欲しい。 つまり、 command 以降のフラグを watch は解釈しない。

メールを監視する:

watch -n 60 from

ディレクトリの中身の変化を監視する:

watch -d ls -l

ユーザー joe の所有するファイルのみを監視する:

watch -d 'ls -l | fgrep joe'

クォートの効果を見てみたい場合:

watch echo $$
watch echo '$$'
watch echo "'"'$$'"'"

管理者による最新のカーネルのインストール状況を監視する:

watch uname -r

(ただの冗談です)

バグ

端末のリサイズ時に、スクリーンは正しく再描画されない。 次の更新スケジュールを待たなければならない。 --differences によるハイライト表示は、その更新の際に全て失われる。

非印字文字はプログラム出力から取り除かれる。 これらをみたい場合は、コマンドのパイプラインのどこかで "cat -v" を用いること。

作者

もともとの watch は Tony Rems <[email protected]> が 1991 年に書いた。 Francois Pinard が修正・変更を行った。 Mike Coleman <[email protected]> が 1999 年に書き直し、 新しい機能を追加した。