watch

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

watch - プログラムを定期的に実行し、出力をフルスクリーンで表示する
watch [-dhvt] [-n <seconds>] [--differences[=cumulative]] [--help] [--interval=<seconds>] [--no-title] [--version] <command>
watchcommand を繰り返し実行し、その出力を表示する (一画面に収まる一杯まで)。 watch を用いると、プログラムの出力の経時変化を監視できる。 デフォルトでは、プログラムは 2 秒おきに起動される。 時間の間隔を変えたい場合は、 -n または --interval を用いる。 -d または --differnces フラグを指定すると、更新が行われたとき、 前回と異なっている部分をハイライト表示する。 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 <rembo@unisoft.com> が 1991 に書いた。 Francois Pinard が修正・変更を行った。 Mike Coleman <mkc@acm.org> が 1999 に書き直し、 新しい機能を追加した。