watch -
プログラムを定期的に実行し、出力をフルスクリーンで表示する
watch [-dhvt] [-n <seconds>] [--differences[=cumulative]]
[--help] [--interval=<seconds>] [--no-title] [--version]
<command>
watch は
command
を繰り返し実行し、その出力を表示する
(一画面に収まる一杯まで)。
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
年に書き直し、
新しい機能を追加した。