Developer's Daily | Unix by Example |
main | java | perl | unix | dev directory | web log |
watch ? execute a program periodically, showing output fullscreen |
watch [?dhv] [?n <seconds>] [??differences[=cumulative]] [??help] [??interval=<seconds>] [??version] <command> |
watch runs command repeatedly, displaying its output (the first screenfull). This allows you to watch the program output change over time. By default, the program is run every 2 seconds; use -n or --interval to specify a different interval. The -d or --differences flag will highlight the differences between successive updates. The --cumulative option makes highlighting "sticky", presenting a running display of all positions that have ever changed. watch will run until interrupted. |
Note that command is given to "sh -c" which means that you may need to use extra quoting to get the desired effect. Note that POSIX option processing is used (i.e., option processing stops at the first non-option argument). This means that flags after command don’t get interpreted by watch itself. |
To watch for mail, you might do |
watch ?n 60 from |
To watch the contents of a directory change, you could use |
watch ?d ls ?l |
If you’re only interested in files owned by user joe, you might use |
watch ?d ’ls ?l | fgrep joe’ |
To see the effects of quoting, try these out |
watch echo $$ watch echo ’$$’ watch echo "’"’$$’"’" |
You can watch for your administrator to install the latest kernel with |
watch uname -r |
(Just kidding.) |
Upon terminal resize, the screen will not be correctly repainted until the next scheduled update. All --differences highlighting is lost on that update as well. Non-printing characters are stripped from program output. Use "cat -v" as part of the command pipeline if you want to see them. |
The original watch was written by Tony Rems <rembo@unisoft.com> in 1991, with mods and corrections by Francois Pinard. It was reworked and new features added by Mike Coleman <mkc@acm.org> in 1999. |