本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回はコマンドを一定間隔ごとに繰り返し実行する「watch」コマンドです。
「watch」は、引数として指定したコマンドを一定間隔ごとに繰り返し実行するコマンドです。実行結果をフルスクリーンで表示し、[CTRL]+[C]で終了します。
watch [オプション] コマンド
※[ ]は省略可能な引数を示しています
短いオプション | 長いオプション | 意味 |
---|---|---|
-t | --no-title | ヘッダを表示しない |
-e | --errexit | エラー時(実行したコマンドエラーコード0以外で終了したとき)はwatchコマンドも終了する |
-b | --beep | エラー時にはビープ音を鳴らす |
-d | --differences | 直前の実行結果から変化した箇所をハイライト表示する。「permanent」または「cumulative」オプションを付けると初回実行時から変化した箇所を表示する(「-d=permanent」のように指定) |
-c | --color | ANSIによるスタイル指定を行う |
-g | --chgexit | 実行結果が変化したらwatchコマンドを終了する |
-n 秒数 | --interval 秒数 | 実行間隔を秒数で指定する(設定できる最小値と最小間隔は0.1秒) |
-p | --precise | 実行のタイミングを厳密にする |
-x | --exec | 指定したコマンドを「sh -c」ではなく「exec」コマンドで実行する |
「watch コマンド」では、コマンドを2秒間隔ごとに繰り返し実行します。間隔を変更したい場合は「-n 秒数」のように指定します。
watchコマンドは実行結果をフルスクリーンで表示し、実行するごとに画面全体を更新します。画面の1行目には実行間隔とコマンド名、開始時刻を表示します。この部分を表示したくない場合は「-t」オプションを指定します。
画面1では、「watch date」として現在の時刻を表示するdateコマンド(連載第77回)を繰り返し実行しています。
watch コマンド
(コマンドを2秒間隔で繰り返し実行する)
watch -n 1 コマンド
(コマンドを1秒間隔で繰り返し実行する)
直前の実行結果と比較して、変化した箇所だけをハイライト表示するには、「-d」オプションを使います。「-d=permanent」とすれば、初回実行時から変化した箇所全てをハイライト表示できます。
画面2では「watch -d date」を実行しました。秒数を表示している箇所のうち、直前の実行時と秒の内容(5)が異なるため、ハイライト表示になっています。
watchコマンドのマニュアルでは、「-d」を使った実行例として、ディレクトリの中身の変化を監視する「watch -d ls -l」や、ユーザーjoeの所有するファイルだけを監視する「watch -d 'ls -l | fgrep joe'」を紹介しています。
watch -d コマンド
(直前の実行結果から変化した箇所をハイライト表示する)
watchで指定したコマンドは「sh -c」が実行しています。このため、指定したコマンドの引数の中で環境変数やシェル変数を参照したいなど、引用符を使いたい場合は、適宜引用符を補う必要があります。watchコマンドのマニュアルでは「echo $$」を使った例に触れています。
例えばwatchコマンド実行中に呼び出されるシェルのプロセスIDを表示したい、とします。「watch echo $$」と実行すると、事前に「$$」が展開されてしまい、現在端末で使用しているシェルのプロセスIDが「1000」だった場合、「watch echo 1000」を実行します(※1)。これでは、watchコマンドを実行したシェルのプロセスIDを繰り返し表示する(echo 1000を繰り返す)だけで、出力結果が変化しません。
これに対し、「watch echo '$$'」を実行した場合は、「echo $$」を2秒間隔で実行します。その結果、echoコマンドを実行しているシェルのIDが刻々と変化する様子を表示できます。
※1 「$$」は実行中のシェルのプロセスIDを格納した特殊変数。
西村 めぐみ(にしむら めぐみ)
PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事に関連する製品/サービスを比較(キーマンズネット)
Linux & OSS 記事ランキング