watch命令
watch是一個非常實用的命令,基本所有的Linux發行版都帶有這個小工具,如同名字一樣,watch可以幫你監測一個命令的運行結果,省得你一遍遍的手動運行。在Linux下,watch是周期性的執行下個程序,并全屏顯示執行結果。你可以拿他來監測你想要的一切命令的結果變化,比如 tail 一個 log 文件,ls 監測某個文件的大小變化,看你的想象力了!
1.命令格式:
watch[參數][命令]
2.命令功能:
可以將命令的輸出結果輸出到標準輸出設備,多用于周期性執行命令/定時執行命令
3.命令參數:
- -n或--interval watch缺省每2秒運行一下程序,可以用-n或-interval來指定間隔的時間。
- -d或--differences 用-d或--differences 選項watch 會高亮顯示變化的區域。 而-d=cumulative選項會把變動過的地方(不管最近的那次有沒有變動)都高亮顯示出來。
- -t 或-no-title 會關閉watch命令在頂部的時間間隔,命令,當前時間的輸出。
- -h, --help 查看幫助文檔
引言
有時候你需要不斷的執行某個命令,追蹤其輸出產生的變化情況。你可能會寫一個死循環來做這件事情:
while :
do
clear
commands
sleep 1
done
然而實際上linux中有一個 watch 命令能夠幫你做這件事情。它會定期執行指定的程序并將結果全屏輸出。
watch 的使用方法很簡單,只需要
watch 命令
就行了,這樣 watch 命令會每隔兩秒執行一次該該命令,并全屏輸出執行結果。

從上圖可以看出,第一行中的 Every 2.0s: 表示 watch 每隔2秒執行一次命令。后面的 date 為要執行的命令。再后面的 T520: Thu May 10 16:55:23 2018 是主機名以及執行命令的時間。
在下面,從第二行開始就是命令執行的時間了。
通過 -n INTERVAL 你也可以設置重復執行命令的間隔時間,比如我可以調整為每5秒中執行一次 date 命令
不僅如此,通過 -d 選項, watch 還能高亮顯示兩次輸出中不同的部分,這個功能相當實用

除了高亮顯示輸出中改變的部分外,你也可以設置讓 watch 發現結果有改變時退出循環執行,方法是使用 -g/--chgexit 選項
默認情況下, watch 并不會關心命令的執行結果是否成功

但你可以讓 watch 檢測命令的返回值,當命令運行返回非0時發出蜂鳴(-b/–beep)或者直接退出(-e/–errexit)。

最后,若你希望 watch 只顯示出命令的執行結果,而不要顯示第一行的那些信息,那么可以使用 -t 選項關閉title的顯示

總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。